トップ 最新 追記

日々の流転


2010-08-10 [長年日記]

λ. ICFPC2010のゲートの関数を他のソルバで求める

今年の The ICFP Programming Contest 2010 に参加したとき には、ゲートの関数を求めるのに Alloy Analyzer を使った。 Alloy を使った本質的な理由はあまりなくて、たまたま使い慣れていていたことで、解を列挙する機能があったことが大きい。 なので、正直どのソルバーを使っても似たようなものだろうと思っていた。

そこで、どうせなので他のソルバーでも試してみることに。 まず、SMTソルバーのYices(1.0.28)とCVC3(2010-07-11)に以下をそれぞれ食わせてみたところ……結果はいずれもunknownだった。 関係・関数も量化も有限領域上に対してしか使っていないので、最悪でも全部を基礎化(grounding)して、bit blasting すれば解けるはずなのに……これはかなりガッカリ。

(追加するかも)


2010-08-14 [長年日記]

λ. Real World Haskell読書会 2010-08

私は前回おやすみしてしまったので久しぶり。 今回は14章「モナド」のあたり。

(>>=) は左結合なんだ、知らなかった。 というか、考えて見れば引数の型が違うので、m >>= f >>= g(m >>= f) >>= g でなくてはならなくて、m >>= (f >>= g) としたら型が合わなくなってしまうので、当たり前といえば当たり前。

でも、(>>) も左結合なので、Nothing >> m1 >> m2Nothing >> (m1 >> m2) ではなく、(Nothing >> m1) >> m2 と解釈される。そのため、この場合 m1, m2 は評価されないけど、二つの (>>) は短絡されずに評価されてしまう。 まあ、こんな明らかな場合には最適化できてしまうと思うけれど。

MonadがFunctorのサブクラスでなくなったのがいつかという話になったが、Haskell 1.3 report で型構築クラスが導入されMonadクラスも導入されたときには、すでに今の形だったようだ。 ということは、MonadがFunctorのサブクラスであったことがあるのはGoferの方だけであって、HaskellではMonadがFunctorのサブクラスであったことはないのか。

[nobsunのbfold]

関連

Tags: haskell

2010-08-21 [長年日記]

λ. CLTT読書会 第5回

RWH読書会だけでなく、これも前回お休みしていたので、久しぶり。 Section 1.6 から Section 1.7 の Lemma 1.7.6 まで。

Tags: 圏論

λ. モナド納涼会

に参加。

Tags: 圏論

2010-08-23 [長年日記]

λ. CLTT の 1.4 Cloven and split fibrations のノート

CLTT読書会で読んでいる Categorical Logic and Type Theory の、1.4 Cloven and split fibrations を復習して、練習問題も一通り解いた。

Tags: 圏論

2010-08-27 [長年日記]

λ. RubyKaigi2010

RubyKaigi2010に8/27(金)-8/29(日)の三日間参加する予定です。

[RubyKaigi2010 ATTENDEE]

Tags: ruby