[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 メーリングリストの案内