generated at
OCaml


install


file
extension: .ml
run: $ ocaml hoge.ml

mrselin(未設定)




backend



OOP


ocaml用のSciPy

基礎文法
関数定義
Ocaml
let f = fun x y -> x + y;; let f x y = x + y;; (* 上と同じ。 `fun`を省略した記法 *)


グローバル変数的なものは、関数定義時のものになる
こういう方式を静的スコーピングと呼ぶ
ml
let pi = 3.14;; let circle_area r = pi *. r *. r;; let pi = 3.0;; -- ここで変数名piを再利用しているが関数circle_areaには影響がない(と、言う意味で純粋なのか(?) circle_area 2.0;; - : float = 25.12

let式による局所定義
ml
let 〈変数〉 = 〈式1〉 in 〈式2〉 let n = 5 * 2 in n + n;;
〈式2〉の計算中,〈変数〉を〈式1〉(の値)とする
〈式1〉を計算し,その値に〈変数〉という名前をつけ,〈式2〉の値を計算する.
この〈変数〉の有効範囲は〈式2〉だけで,〈式2〉の外側では使用することができない.
思考の順序としては、まず最初にやりたいことが〈式2〉で、
あ、コレ変数まとめたほうがよくね、って気づいて let 〈変数〉 = 〈式1〉 を書くのか?
let rec
再帰


match式
ml
match 〈式0〉 with 〈パターン1〉 -> 〈式1〉 | ... | 〈パターンn〉 -> 〈式n〉
〈式0〉の値を〈パターン1〉から順に照合していき,i番目でマッチしたら(形があったら),〈式i〉を計算しその値がmatch式全体の値となる

visual programming


参考