haskell-ja > Archives > 2009/11/19

2009/11/19 01:20:15 UTCeyasuyuki@twitter
#
@chaton_cljp @chaton_gauche #haskell Haskellナイトの前売りは今日18時まで、メール予約は今日20時まで。以後は当日券です。ただし今日と明日のFranzセミナーで配るチラシ持参者は当日券2000円です。
2009/11/19 05:05:01 UTCkazu
#
Y コンビネータにメモの機能を入れるアイディアが、以下に書かれています。
#
http://d.hatena.ne.jp/r-west/20090422/1240400570
#
この Y をどなたか実装して、見せて頂けませんか?
#
以下を基にして下さい。
#
import Unsafe.Coerce
fib = \f n -> if n < 2 then n else (f (n-1)) + (f (n-2))
y = \f -> (\x -> f (x (unsafeCoerce x))) (\x -> f (x (unsafeCoerce x)))
#
y が状態を持つので State モナドにしないといけないのでしょうかね。
#
メモには、Data.IntMap を使って頂けると嬉しいです。
2009/11/19 05:18:32 UTCnobsun
#
これ、だいぶ前に http://www.sampou.org/cgi-bin/haskell.cgi?Memoise でやったのと本質的には同じだと思います。「実装を共有する魔法」というやつです。
#
もっと洗練された方法はあるかもしれませんが。。。
2009/11/19 05:32:13 UTCnobsun
#
ああそうかΥの中にほりこむのか。
2009/11/19 06:12:29 UTCnobsun
#
memoY = b evalMemo (b (b y) b memoise)
#
memofib = memoY fibF
#
fibF f 0 = 0
#
fibF f 1 = 1
#
fibF f n = f (n-1) + f (n-2)
2009/11/19 06:40:14 UTCnobsun
#
あれこれライブラリつくったことあるな。
#
darcs get http://darcs.sampou.org/memo/
#
http://www.sampou.org/cgi-bin/haskell.cgi?nobsun%3amemo
#
Cabalファイルを修正したのでたぶん動くはず。
#
Control/Memo.hs と examples/fib.hs を見てください。memoY = memo table です。
2009/11/19 10:43:03 UTC[1..100]>>=pen
#
明日のHaskellナイトですが本持参すると何かいいことありますか?
2009/11/19 13:28:01 UTCkazu
#
最初の一時間は、サイン会です。