OCaml

Bigarrayモジュールを用いたOCamlとCの連携

OCamlのマニュアルとかにやり方は大体書いてあるし出来るのは知っていたのだが実際にやろうとしたらコンパイルオプションとかでえらく苦労したので動いたミニマルな例をメモしておいた。 https://gist.github.com/1442320

core-107.01のconfigureがmktempでエラーを出す問題への対処

Jane StreetのOCamlの代替標準ライブラリであるCoreの現バージョンcore-107.01をconfigureするとき、 I: Running command 'lib/discover.sh lib/config.mlh lib/config.h -DLINUX_EXT' のあとに mktemp: too few X's in template `./discover_src.XXXXXXX.c'…

Jane Street OSS群のインストール順

Jane Streetは多くの有用なOSSを公開しているが地味に依存関係がめんどくさいのでインストール順の一例をメモしておく。 (OUnit)->(res)->Type-conv->Variantslib->Sexplib->Bin_prot->Fieldslib->Core->Async->Core_extended->Patdiff

OCamlでProject Eulerをいくらか解いた副産物

https://gist.github.com/2185169 Project Eulerを50問くらい解いていたら数論系のアルゴリズムのOCaml実装が結構溜まってきたので公開する。LennMars/algorithms_in_OCaml · GitHubに依存しているがlet sob = string_of_big_intみたいなことを平気でしてい…

Caml trading

Y. Minsky and S. Weeks: Caml trading - experiences with functional programming on Wall Street. JFP 18(4):553-564, 2008.著者らが所属するJane Streetは自社資金のみでトレーディングを行う会社であり、設立当初はExcelやVBAを使っていたが2005年頃か…

Big_int.extract_big_intが変

let n = 100 let b = shift_left_big_int unit_big_int n |> pred_big_int (* 111...11 *) let k = 2;; for i = 0 to n - k do let m = (extract_big_int b i k |> int_of_big_int) in if m <> int_exp 2 k - 1 then Printf.printf "%d : %d\n" i m; (* fail…