OCaml

Polymorphic variant and record

「Modulaはレコードも含めて全部Structured Typeだったのに惜しい」の部分は、どうもPolymorphic recordで実現されるらしいが、よくわかりません。http://d.hatena.ne.jp/h_sakurai/20070311http://moscova.inria.fr/~zappa/teaching/stt05/types-3.pdfhttp:…

Stream.fromとクロージャ

特にこうやってその場でstatic変数モドキができるのは覚えとこう……。Haskellでは考えられないし(できるけど普通はやらない←ツッコミ避け)、クロージャがスタックに縛られているDやAdaでも考えられず、今までに経験してこなかったパターンなので。 # let s = …

私的OCaml

http://d.hatena.ne.jp/shinichiro_h/20050602#1117704889 id:shinichiro_hさんとこなどを見て、私的にOCamlに思うところを。(以下完全に私見というか、私にOCamlがどう見えているか、です) OCamlは素晴らしい言語だと思います。私的には気に入らない箇所も…

ocamlyaccとocamllex

実はyaccをまともに使ったことが無かったりする私ですが、ドキュメントの例にエラー処理を追加してみました。 /* File parser.mly */ %{ let parse_error (z : string) = print_string z; print_string " at ";; let print_pos p = print_int p.Lexing.pos_l…

GMP

なんか使えるようになったらしい。 MinGWもVisualC++も両方COFFなもので、MinGWでビルドしたlibgmp.aとlibmpfr.aを無理やりリンクしてgccから_chkstk.oだけ持ってきたらひとつの.dllにできちゃいました。

だんだんわかってきた

ocamloptで.cmxaを作るときにCライブラリを使いたい場合は-cclibを使う。Objective Caml\lib以下にlibxxxx.libを置く。 ocamlcで.cmaを作るときにCライブラリを使いたい場合は-dllibを使う。Objective Caml\lib\stublibs以下にdllxxxx.dllを置く。.dllを作っ…

GMP

最近ようやくタイプ量が少ないことは重要であることに気付きまして、ネイティブで型推論があってスクリプトのようにも使えるPascalに良く似た手続き型言語ことOCamlを始めようとしたのですが、MinGW版とVisualC++版はどちらがいいんだというところで詰まって…