2007-09-01から1ヶ月間の記事一覧

Mobility Workbench と Hennessy-Milner logic

なんだかよくわからないながらも、 Mobility Workbench の使い方と Hennessy-Milner logic の勉強をしています。 id:syd_syd さんに貸してもらった Reactive Systems という本は、(今のところは)わかりやすくていい感じ。最後までこのペースで進めればなと思…

今日は勉強会

Coq

今日は久しぶりの勉強会でした。まずは id:suer さんによる、 PPL Summer School のレポートでした。SAT Solver が超速い!みたいな。問題の制約を SAT の形式(?)にエンコードできれば、すごい速さで問題を解くことができるそうです。すげーな。 次は id:yos…

不動点探し

SICP を飛ばし飛ばし読んでいる。これは、不動点を求める関数を使って平方根を求める、というもの。以下は適当メモ。関数 f の不動点とは、 x = f x となるような x のこと。ここで y^2 = x という式を考えると、例えば sqrt 2 は、 y^2 = 2 となるような y …

Strong Bisimulation Checker

今までにみた関係を覚えておくことで、くるくる回ってもいいようにしてみた。ソースがいよいよ汚い。 import Control.Monad.State import Control.Monad (liftM) trans = [("p0","a","p1"),("p0","a","p2"),("p1","b","p0"),("p1","a","p2") ,("p2","b","p0"…

Strong Simulation Checker

すごい適当。明日には読めないソースであることよ(詠嘆)。 trans = [("p0","a","p1"),("p1","b","p2"),("p1","c","p3") ,("q0","a","q1"),("q0","a","q1'"),("q1","b","q2"),("q1'","c","q3")] simulates :: String -> String -> Bool simulates p q = let t…

Probability Monad (あきらめ)

今日はまじめに論文を読んでて疲れたので、気分転換に昔どっかでみた"確率モナド"みたいなものを実装してみようと思った。けどめんどくさくなったのでモナドにするのはあきらめて、 select という関数を作って代用してみた。まぁ、それなりにそれっぽく書け…

フィボナッチ

できたー。値をチャネルに投げ込むときは、がっちり型を書くほうが無難みたいです。 module Main where import PiMonad hiding (piStart) import PiMonad.IO.Console import PiMonad.Channel import PiMonad.Network main = piStart False Nothing mainPr ma…

Concurrent Haskell で遊ぶ

勉強してたら知恵熱がでそうになったので休憩。普通のクイックソートより遅くなる。(当たり前) import Control.Concurrent import System.Random (randomRs, mkStdGen) main = do r <- newEmptyMVar sort r $ list 1000 takeMVar r >>= print list x = take …