言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

偽変数 it

いくらネストを避けたいからと言って、レシーバを書けないのは不便かなあと思っていたのだが、偽変数 it を導入すると、Smalltalk の文法のままいける事を思いついた。it を前の式の返り値と定義すると Smalltalk文 との整合性が取れる。これは良いんじゃないかな。

"車の下の色を見て、進むべき方向を決める"
Car method: #nextDirection answers: Number.
Car method: #nextDirection for: [
  it underColorNamed: '#FF0000'.   "車の赤い部分に重なっている色を返す"
  it isColorNamed: '#FFFFFF'.      "調べた色は白でなら true を返す"
  it ifTrue: [-10] ifFalse: [10].     "true なら -10 false なら 10 を返す"
  ^it
].