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

Concurrent Clean : 配列の更新

配列の更新が一意配列のみに限定されていることを考えると、下の仕様はやや驚きだが、便利だ。 http://sky.zero.ad.jp/~zaa54437/programming/clean/LanguageReport21/Chap4.html#sc19 Swap:: !Int !Int !*(a e) ->.(a e) | Array a e Swap i j a=:{[i]=ai,[…

Concurrent Clean : abortはstrict

ついさっきまで、abortが正格性解析で特殊な振る舞いをすることに気づきませんでした。 f b a | b = a = abort "error"と書いたとき、fの型は、大体、次のように推論されるのです。 f :: !Bool !.a -> .aで、なぜ、「!.a」のように正格性注釈がついてしまう…

Concurrent Clean : 正規表現

なんか、参考ページのパーザの書き方が間違ってるくさいんですけど・・・ "([A)]\()"見たいなのが通らない気がする。 そうでなくても、ちょっとアレなので、後でいろいろ直していかないとダメっぽいな。 - そして、正規表現文字列のコンパイル処理の記述を完…