2004-10-06から1日間の記事一覧

die さんの PostScript 版を強引に (ry その2

無名関数を返さずに、かつ、メソッドにまとめてしまってよいならば、exit もでき、よりシンプルに書けます。 Object >> case: caseArray caseArray pairsDo: [: case : execBlock | (case = self or: [case = #else]) ifTrue: [^ execBlock value]] x挨拶s x…

die さんの PostScript 版を強引に (ry

die さんの PostScript 版 を Smalltalk で。ブロックからは exit できないんで、こねくり回していますが。w case xあいさつ case _ [: exp : array | | result | result _ nil. array pairsDo: [: e : b | (e = exp or: [result isNil and: [e = #else]]) …

Python の例を Smalltalk で強引に書いてみる

某所で Python を使って呈示されている例を移植してみました。でも、Smalltalk だとやっていることや意味は同じでも、雰囲気や使い勝手はがらりと変わってしまいますね。 mySwitch mySwitch _ PySwitch subclass: #MySwitch instanceVariableNames: '' class…

Squeak システムの Smalltalk で switch/case 式

某 Python スレに端を発した switch/case 文の話。ゲンゴァー未満の私は、どっちかというと Googler なのでw、検索で見つけたこちらのCamp Smalltalk の記事をパクって、Squeak システムの Smalltalk に組み込んでみました。 char char _ $b. ^ char switch…

Ruby の range は無限大を扱えるのか…

つらつらと ruby-talk などを眺めていてふと目に付いたこれで、 (0..(10.0/0)).member?(4)るっ、Ruby は 0 で割っても例外をあげないのか、ってか、range は無限大を扱えるのか…とちょっと驚いて試してみる。 1/0 #=> error 1.0/0 #=> Infinity 0..(1.0/0) #…