2006-04-11から1日間の記事一覧

CSS

はてなのCSSの構造がいきなり変わって、記事が突然読めなくなってあせった。

Concurrent Clean : 流れ指向と無名関数

無名関数を使ったときに、レイアウトを深くする必要がないことに気づいた。 ということで、途中で変数束縛を入れたくなったら、こんな風に書けばよいことで結論。 Start w = w --> stdio --> \(f,w) = f --> fwrites "hello world\n" --> flip fclose w --> …

Concurrent Clean : 文字列の一意性型属性

id:sshiさんの指摘が気になって、あれこれ試してみたら、全然共有できるんですけど。 たとえば、こんな感じ。 Start w = w --> stdio --> \(f,w) = f --> fwrites "input >" --> freadline --> \(line, f) = f --> fwrites $ reverseStr line --> if (line =…

ところで、Haskell

にもtrace関数はあるよ。

Concurrent Clean : 関数の返値に付加された一意性型属性 : Clean入門

次のプログラムは、コンパイルが通ってしまいました。 Start w # (_,f,w) = fopen "num.txt" FReadText w (s1,_) = sfreads f 3 (s2,_) = sfreads f 5 (c,w) = stdio w c = c <<< s1 <<< " and " <<< s2 <<< "\n" (_,w) = fclose c w = wでも、これは通らな…

Concurrent Clean : Clean入門

http://www.geocities.jp/lethevert/softwares/clean/gettingStarted01.html 先の修正を含めて、いくつか校正をいれて、更新しました。

Concurrent Clean : ここです

Start :: [Int] Start = takeWhile ((>) 1000) [x^3 \\ x <- [1..]]しかし、以下のように書かないよう気を付けて欲しい。 Start :: [Int] Start = [x^3 \\ x <- [1..] | x^3 < 1000]これは以下のものと同等である。 Start :: [Int] Start = filter ((>) 1000…

Concurrent Clean : 大域脱出

流れの中に、どうやって大域脱出を埋め込むかというのが問題。 これを上手く組み込んだ解の一つがモナドなのだが・・・