Smalltalk

Smalltalkでmapcar

Lispのmapcarの真似事。ただ、Lispのmapcarはリストを複数個取ることが出来るんだよね。 !Vector defineMethod: input! mapcar: fn |result| result := Vector new. self do:[:el|result add: (fn value: el)]. ^result. ! ! {1.2.3} mapcar: [:el|el+3].! {…

Smalltalkの動的配列をブロックを使って実装する。

{1.2.3} とあったらこれをパーザで次のように展開するようにする。 [|r| r:=Array new. r add:1. r add:2. r add:3. r] value.実行結果 {{'a','b'}.{1+2}.4}! => {{'12'}.{3}.4}