This page has moved to bucklescript.github.io/bucklescript
This page has moved to bucklescript.github.io/bucklescript
Documentation This directory is not the Reason User documentation. This directory is for Reason contributor documentation. The Reason user docs live online at https://reasonml.github.io. The repo for those Reason docs lives at github.com/reasonml/reasonml.github.io Inside of this directory: Getting Started Contributing: GETTING_STARTED_CONTRIBUTING.md. Releasing: RELEASING.md Programmatically Usin
OCamlを学ぶには、まず何から手を付けたらいいでしょうか? あなたなら何をしますか? 私はこれまで、恐らく10数回はOCamlを覚えようとしました。そして手を付けては諦め、また付けては諦めの繰り返しで、ついには数えるのをやめてしまったくらいです。 でも、今回は続いています。ひょっとすると、コミュニティそのものに何か根本的な変化があったのかもしれません。 私にとって功を奏したのが実際は何だったのか、以下に考察してみたいと思います。 役に立つ本は? 『 Real World OCaml (以下、RWO)』がお勧めです。というよりも、 それ以外にお勧めはありません 。RWOは、私の生涯の中でも1、2を争うことができるくらいのコンピュータ言語解説書です。 ちなみに、その他にも解説書はありますが、大体が不正確な内容を含んでいるか、あるいはフランス語で書かれているかなので、 読まない 方がいいでしょ
しかし,そもそも「関数型言語」とは「副作用のないプログラミングを推奨する言語」のはず。だから,「副作用がある」というと「どこが関数型言語なんだ」と思われるかもしれない。そのOCamlを関数型言語たらしめているポイントの一つが,今回のテーマである「単一代入」だ。 単一代入:変化しない「変数」 Cなどの命令型言語では,変数への代入は,最も重要な機能の一つである。普通のプログラマは,もし「変数に代入をするな」と言われたら,どうやってプログラムを書けばいいのか,途方に暮れてしまうだろう。 しかし,ちょっと複雑なプログラムを開発するようになると,「代入」は意外にやっかいな機能であることがわかってくる。例えば,以下のようなC言語のプログラムがあったとしよう。
第二回 「末尾呼び出し(tail call)と継続渡し形式(Continuation Passing Style)」 継続とは何ぞということをなんとなくでもいいので把握しておきましょう! というのが今回の内容です。 (継続の話に入る前に、まずは末尾呼び出しの話をします。) 階乗を求める関数 fac は次のように書けます。 let rec fac n = if n = 0 then 1 else n * fac (n - 1) これを実行、例えば fac 3 等とすると、 fac 3 -> 3 * fac 2 -> 3 * (2 * fac 1) -> 3 * (2 * (1 * fac 0)) -> 3 * (2 * (1 * 1)) -> 3 * (2 * 1) -> 3 * 2 -> 6 といった感じで計算が進みます。 このプログラムは再帰の度にスタックを使っています。 つまり、fac
Let's use the term "ML" to mean SML or Objective Caml. I'm a devotee of Ocaml, but I have SML/NJ installed and although I prefer the distribution, tools and overall implementation of Ocaml, I'd be happy to write in SML/NJ if Ocaml wasn't around. (I can't speak for Haskell, gofer, hugs, or any of the lazy languages. I think that there are different kinds of people, some of whom like things like def
このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 OCaml(オキャムル/オーキャムル)は、INRIA(フランス国立情報学自動制御研究所)で開発されている関数型言語の一種で、最新の言語理論の成果が取り入れられたプログラミング言語です。 型安全な静的型システムを基盤に、バグの少ない高信頼なプログラムが開発できます。 オブジェクト、型推論、代数的データ型、モジュールシステム、多相バリアント、第一級モジュール、GADTといった様々な機能を利用して、より簡潔で整理されたコードが記述できます。 x86, x86-64, ARM, PowerPCなど多数のアーキテクチャのネイティブコードを出力できるコンパイラを持っています。Android や iOS 向けのクロスコンパイルも可能です(Linux 上でのクロスコンパイルは opam-cross-a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く