2007-01-01から1年間の記事一覧

Eclipse すごい

まぁなんだ、すごいな Eclipse 。感服した。

やっぱり Opera がいいかも

ここしばらく Safari を使っていたのだが、やっぱり Opera がいいかもと思い始めた。どうやらβ版になったみたいだし、やっぱり Safari よりも速い気がする。 けど問題はやっぱり Emacs キーバインドか…。なんで使えないのかなー。 - すいません、まだαでした…

Haddock と Template Haskell

Template Haskell を使ったソースに対して Haddock でドキュメントを生成しようとすると、文法エラーで落ちてしまう。困ったなー。

Pict

Pict をビルドしようとしましたが、ライブラリのビルドに失敗しました。どうしよ、粘るべきかな…。 Building Std/Random.px from Std/Random.pi Uncaught exception: Failure("int_of_string") make: *** [Std/Random.px] Error 2てか Pict って X も扱える…

研究してました

今日は主にプログラミングばかりやっておりました。 Haskell でいうところの where 節内に書かれた関数を外で使えるようにするために、引数を補ってやりましょうみたいな話。今までは外側の関数の引数を全部内側の引数に加えるという力技でなんとかしてたん…

飲み会

昨日は OCaml-nagoya + さかいさんで飲み会があった。残念ながら席が遠くてさかいさんとはあんまり話せなかったんだけど、久しぶりに会えた人もいたのでよしとします。 ちなみに OCaml-nagoya なのに、 OCaml の話は(こっちのほうでは)ほとんどなかった。む…

wxHaskell (Debian編)

wxWidgets 2.6.4 で、かつ GHC 6.6.1 だととりあえずインストールはできる。が、バイナリを実行しようとすると共有ライブラリが見つからないとか言われて落ちる。 LD_LIBRARY_PATH を設定したらとりあえず起動したが、なぜか文字の表示が変になる。全く見え…

名刺ほしい

今日はあのさかいさんにお会いして名刺をいただきました。光栄。自分も名刺が欲しいと思いました。 人にもらった名刺ってどうやって保管するもんなのかね。やっぱ専用のケースを買うのか。

wxHaskell (Windows編)

Windows の場合は、最新の GHC (たしか 6.6.1) と、 wxWidgets 2.6.4 (たぶん)と、それに対応する wxHaskell のバイナリ(公式ページじゃなくてそこらへんのアーカイブから探してくる)で普通に動いた。なんて楽なんだ。あまりのあっけなさに腰が抜けそうだっ…

Haddock とか Hackage とか

Haskell でライブラリっぽいものを書く気がするので、こういうものを意識している。 で、 Haddock を適当に使ってみたら日本語が化けたのに強いショックを受けました。…これだから欧米人はっ!(偏見)

解決しました

例の wxHaskell がらみのことは無事に解決されました。 id:syd_syd さんに全力で感謝したいと思います。 …しかし…仙台?遠くね?

あぁぁぁ…

Haskell Hierarchical Libraries が落ちてる気がするぅ…。なぜ今なのか…。

wxHaskell は鬼門

うぐぅぅ。 wxHaskell を使ったプログラムが落ちる…。原因が全くわからんわー。

Linux での wxHaskell

うまくいかない…。 Mac で wxHaskell を使っていたら、なんだかよくわからないバグが発生したので、 Debian で試してみようと思ったのがいかんかった。完全にはまって今まさに半日を無駄にしようとしています。 んー、どうしてもリンクに失敗します。この問…

Opera がおかしい

なんだか異様なほど Opera が重い。何もしていなくても常に CPU 使用率が 80% 近くになってしまう。しかも Opera を終了するのに1分くらいかかる。他にも Opera の 9.5 には不満がいろいろ。こりゃあ Safari に戻す可能性もでてきたかなぁ。 逆に Safari は…

Template Haskell は脳内メモリを食い尽くす

タイトルの通り。ややくじけそうである。 昨日から、自分で定義したデータ型を使って書いた構文を、Template Haskell でコンパイル時に Haskell ソースに変換するというようなメタプログラミングをしている。とはいえ、今日は一日遊んできたからほとんど何も…

GHC の抽象構文木

わけあって GHC の抽象構文木をちょびっとだけ触らないといけないのだけど、構造がよくわからない。どっかにドキュメントがあるといいなぁ。大雑把に探してみた感じでは見つからなかったんだけど。

メモ

Mac

GUI のプログラムを書いているときでも、 tail -f /Library/Logs/Console/501/console.log で、コンソールへの出力が見える。

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 …

なんかおかしいな

Pi

なぜだめなんだろうか。眠くてもうだめ。 main = piStart False Nothing mainPr mainPr :: Maybe (I (), NewP) -> PiMonad () mainPr _ = do s <- new fork $ fib 10 s s' <- recv s cout

今日やったこと

なんか時間のかかる処理がしたかったので、フィボナッチ数の計算をしようと思った。(意味不明) そんで π 計算でフィボナッチ数を計算するプログラムを書かなくちゃなーと思って、ややめんどくなってすぐやめる。(おい) 前からちらちら見ていた "Monad for Fu…

止められる fib その2

killThread という関数を使えば、別に Maybe とかで頑張らなくてもいいね。 main = do putStrLn "Enter number: " n <- getLine id <- forkIO $ fib (read n) putStrLn "Press any key to stop calculation." getChar killThread id putStrLn "Now thread st…

止められる fib

これまた適当に書きました。sfib が汚い。フィボナッチ数を裏で計算している途中で何かキーを入力すると、計算が止まります。(しばらく待ってても結果が出力されないことで確認できます)でも、計算を止めないとなぜかデッドロックする模様。はて。 import Co…