[SML 7871] Re: 連想計算というリフレクティブな手法
Masato Sumi
sumi @ seagreen.ocn.ne.jp
2010年 12月 14日 (火) 15:30:12 JST
sumim こと鷲見です。
連想計算でもリフレクティブでもないので恐縮ですが、
にぎやかしにと、2つほど考えてみました。
Integer >> ffibonacci
^((1 to: self) inject: 0 @ 1 into: [:pair :idx | 0 @ pair x + pair y]) x
Integer >> fibonacci
| temp1 temp2 sender |
self negative ifTrue: [^nil].
self = 0 ifTrue: [^0].
self = 1 ifTrue: [^1].
temp1 := (self - 1) fibonacci.
temp2 isNil ifTrue: [temp2 := (self - 2) fibonacci].
sender := thisContext sender.
sender method selector = #fibonacci
ifTrue: [sender tempAt: 2 put: temp1].
^temp1 + temp2
SML メーリングリストの案内