[SML 7322] Re: ブロック生成のメタプログラミング
Masato Sumi
sumi @ seagreen.ocn.ne.jp
2007年 9月 12日 (水) 13:14:41 JST
鷲見です。
07/09/12 に NISHIHARA Satoshi<nishis @ zephyr.dti.ne.jp> さんは書きました:
> 感覚的には
> foldl (+) 0 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> に近い……かな?
Haskell だと、関数名それ自体がインテリジェントな関数本体のような
イメージもなくもない(カリー化をデフォで持っていたり…)ので、
もっとシンプルなモデルで動く Scheme に言い換えると、
(fold + 0 '(1 2 3 4 5))
に対応するのはむしろ Symbol>>#value:、#value:value: を前提とした
#(1 2 3 4 5) inject: 0 into: #+
のほうで、今回のメタプログラミングの #asBlock を使ったこちら
#(1 2 3 4 5) inject: 0 into: #+ asBlock
は、例えるなら cut マクロを用いた
(fold (cut + <> <>) 0 '(1 2 3 4 5))
のほうに対応するような気が感覚的にはします(^_^;)。
--
Masato Sumi
SML メーリングリストの案内