2009-12-01から1ヶ月間の記事一覧

OCaml: let recの多相

OCamlで,let recで定義した多相関数は,束縛の右辺では多相にならないことに気がついた. let rec id x = x and y () = id 0 and z () = id true;; ^^^^intでないのでエラーになる

OCaml: 型検査が通らない例

カリー化された関数opとそれに適用する引数をリストで受け取り1つずつ適用するようなexpand_args関数を以下のように定義する. let rec expand_args op args = match args with [] -> op | v::rest -> expand_args (op v) rest以下のように使いたい. # expa…