Hash λ Bye

Haskell, Clojureなどの話

Standard MLの定義を読み始める

自分の欲しいDSLを作るにあたって、構文として参考になりそうなものを探した結果MLが良いのではとなった。 特にStandard MLが良さそうだ。 OCamlより個人的には素直な文法に感じた。Schemeと違ってTypingもいずれできそうな構文だった。Haskellのようなオフ…

Strongly static types, not for every task なのは何故なんだ

Clojure Rationale このページにこんな文があった。 Pure functional languages tend to strongly static types * Not for everyone, or every task 「静的型付けは全てのタスクに適しているわけではない。」 そのタスクとは何を想定しているのか、ここでは…

ClojureのS式になんでも書けるという話

S式という記法(?)はほんとになんでも書けると知った。 翌日追記: S式というかReaderがすごいっぽい。 例えば (def japanese '(式のなかに 日本語を書くと そのままシンボルになる)) とか (defn 二倍 [x] (* x 2)) とか書ける。 それにmutil line stringも (d…

Haskellerの好きなところ

僕はHaskellが好き。 なんだけど、同じくらいHaskellもくもく会の常連の人達が好き。 ちょっとした型についての質問から、いつの間にかホワイトボード上で証明とか書き出して「あー、ほんとだー、そういうことかー」って言ってる感じが好き。 解らないことが…

Haskellの代数データ型をJava的なインタフェースと捉える

Haskellの代数データ型は僕にとってJavaのインタフェースに近い。 データ型がインタフェースでそのデータを受け取る関数がインタフェースのメソッドに相当する。 データをパターンマッチで分解して値コンストラクタ別の関数定義をするのは、 インタフェース…

Clojureでの副作用の表現について

自分が悩んでることを拙い語彙でぽつぽつ綴るので、誰にも伝わらないと思う。 DBアクセスする機能を実装したいとする。 java.jdbc を使ってDBアクセスレイヤを実装することになるのが普通かなと思う。 Clojureは関数型プログラミング言語なので、組み立てに…