これは私用の覚え書きを適当に整形したもの(というか Sphinx で hatena 記法にしただけだけど)。だから他の人が読んで判るように全く書いていない。OCaml や ML のモジュールシステム、 value polymorphism、さらには relaxed value polymorphism、そして日本語を知っている人に、ならば何か役に立つかもしれない。多分地球上で数十人もいない。まあいいや。これ見てウヘェ、と思うなら例えば F# みたいな ML モジュールシステムを放棄して class 階層を採用した言語とか、 Haskell みたいな type class でモジュールを実現したのとかを使うか、それとももっと超カッコいいナントナクヒューリスティックで便利キワマルな型推論補助のついたモジュールシステムを考えて OCaml に足して公開すればいい。正直私もここまで来ると ML モ
Published on Saturday, June 19, 2010 and tagged with programming, ocaml, and performance. TL;DR: setting OCAMLRUNPARAM=s=4M,i=32M,o=150 can make your OCaml programs run faster. Read on for details and how to see if the garbage collector is thrashing and thereby slowing down your program. In my research work with GroupLens, I do a most of my coding for data processing, algorithm implementation, etc
In this 6 part series, I’m going to introduce the internals of the OCaml programming language (tutorial and other references here). This isn’t going to be very comprehensive or in-depth. It’s more of a digest of the readily available information that I found by reading the manual, header files, and some of the compiler code. It’s definitely pitched at beginners, not experts. By the end of it, you
Jacques Garrigue. In Workshop on Foundations of Software Engineering. Sasaguri, Japan, November 2000. Abstract. Their support for code reuse has made object-oriented languages popular. However, they do not succeed equally in all areas, particularly when data has a complex structure, making hard to keep the parallel between data and code. On the other hand, functional programming languages, which s
すとっどりぶ ご存知のように OCaml の stdlib は「標準ライブラリ」ではありません。「すとっどりぶ」です。大事な事などでもう二度言いますってやつです。これは OCaml コンパイラがコンパイルできる様にするための最小限のライブラリ+ INRIA の人たちの気分で加えた関数から成っています。当然、OCaml をバリバァリ使う人には全く力不足です。「すとっどりぶ」で満足できない人は Jane Street Core や OCaml Batteries Included 等を使うと良いです。 でも、なんだか自分の書いているソフトに外部のライブラリを使って変な依存性を入れるのはどうかなあ、とか、わざわざ巨大な「代替標準ライブラリ」を入れるの面倒だ、という人もいるでしょう。そういう時は自分で「すとっどりぶ」を拡張すればよい。その時に便利な方法をお教えします。 すとっどりぶを拡張する たと
tuareg-mode については、 http://d.hatena.ne.jp/camlspotter/20100605/1275695973 でも書いたとおり、最新版の 2.0.x はまだちょっと手を出すのは早いのかなあと思っていましたが、そうも言っておれず… 2.0.x では match, try, function の case 文での -> 以降のインデントが浅すぎる、という問題があります。これについては問題として報告されているのですが、メンテなが全然気にして無いので直らない。でそのままでは見た目がこんなになる: let f = match t with | p -> xxx; (* ??? *) yyy | p -> xxx; (* ??? *) yyy ;; ご覧の様に、 -> 以降の行のインデントがパターン p と同位置にあるため、どこでケースが切れているのかパッと見判り難
Embedded domain-specific languages for probabilistic programming Introduction Hansei: Embedded probabilistic DSL with discrete distributions, importance sampling, nested inference Hakaru10: Embedded probabilistic DSL with discrete and continuous distributions, MCMC (MH) sampling Problems of the Lightweight Implementation of Probabilistic Programming Metropolis-Hastings for Mixtures of Conditional
情報科学科では3年夏学期の後半からOCamlを使うのですが、もう夏休みに入った今頃になって開発環境の見直しを始めました。 経験的にEclipseにはどんな言語のプラグインもある(ぇ ので、探してみたところOCamlも見つかりました。 http://ocaml.eclipse.ortsa.com/ まずはWindows用のOCaml 3.11.1をダウンロードしインストール。 Download さらに配布サイトの手順に従ってWindows Vista上のEclipse 3.5にOcaIDE 1.2.5をインストール。 ここからさらにOcaIDE配布サイトにあるチュートリアルに従ってOCamlで書いたプログラムの実行を試みたのですが、動かない。 OCaml Compiler Outputタブの内容は 'bash' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイル
OCaml は Haskell とは違って純粋でない関数型言語です。ML (Meta Language) という言語ファミリーの方言の一つで、フランスの INRIA という研究所で開発されています。速度を稼ぐために命令型のように書こうと思えば書けるし、遅延評価もデフォルトではしません。その分、practical なアプリケーションが書きやすくなっています。 他の言語をある程度知っている人はこれを読めば OCaml のとりあえずの基礎をマスターして OCaml を書くことができるようになります。多分。関数型言語の知識は仮定していません。C/C++ ぐらいの知識があれば読めると思います。元の Perl 基礎文法最速マスターではリファレンスぽい作りですが、チュートリアルぽくなってしまいました。 なお、読んでいると分かりますが、色々とめんどくさいことが多いように感じます。しかし、これをちゃんと書く
(その変態的シンタックスに慣れれば) 結構早くプログラムが理解できるとうわさの OCaml ですが、他人の書いた OCaml ライブラリを読んだり、自分が書いた物でも、コード規模が大きくなってきたりすると、 どこかにあるハズの定義が見つからねぇ ってことが多くなってきます。例えば、 open M open N ... 何百行もある ... let compute () = ... X.f ... っていうソースがあったとして、 X.f の定義を探したいとき、どうしますか?普通は、こんな感じでやります: x.ml というファイルがあれば、多分その中に f というのがあるはず => x.ml なんて無い じゃあ、「何百行もある」の中にモジュール X が定義されてるかもしれないから、エディタでサーチする => 無い あれー?じゃあ、どっか別のディレクトリの中に x.ml があるのか? find
「プログラミング言語理論」という研究分野がある。この分野の研究者たちは,「ML」「Haskell」「Scheme」あるいは「λ計算」「π計算」(円周率計算のことではない)など,多くのプログラマにとっては聞いたこともない言語やモデルについて,日夜研究している。そのような言語は,C,C++,Java,Perl,Rubyなど,今の世の中で広く使われている言語とは見た目や考え方が違いすぎて,「難しい」「役に立たない」などと思われがちだった。 ところが,その状況が最近になって微妙に変化している。 HaskellやLispなど「関数型言語」についての記事が,専門の学会誌ではなく,一般の技術誌に掲載された(日経ソフトウエア2006年6月号「Haskellによる関数型プログラミング入門」など)様々なフリーソフトウエアがML,Haskell,Schemeなどで開発されたプログラミング言語の研究者ではなく,普
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く