プログラミング
勉強 プログラミング in OCaml (–§ 6.4. 二分木) 二分木 木構造というデータ構造がある。 - ノード:データを格納する。 - ノードは0個以上の子ノードを持つ。 各ノードの子ノードの最大個数が のとき 分木という。 二分木は再帰的に定義できる: - データを…
勉強 プログラミング in OCaml 練習問題 5.5 練習問題の挙動がよくわからないのでトレース。 リストから最初の n 個の値を取り出す再帰関数take let rec take n l = match (n, l) with (0, _) | (_, []) -> [] | (n, x :: rest) -> x :: (take (n - 1) rest)…
勉強 プログラミング in OCaml (–§5.4 Case Study: 整列アルゴリズム) 畳み込み関数fold 何やってるのかわからないのでトレースする。 let rec fold_right f l e = match l with [] -> e | x :: rest -> f x (fold_right f rest e);; fold_right ( + ) [3; 4…
勉強 プログラミング in OCaml (–§5.2 リストの要素へのアクセス) 練習問題 4.6 fun x y -> yを、コンビネータsとkを関数適用のみで組み合わせた形で表現する。 予想(間違っている) s k x y --> k y (x y) (* ??? *) --> y となってほしいけど、型付けエラー…
勉強 プログラミング in OCaml (–Chapter 4) 練習問題 3.7 # let cond (b, e1, e2) : int = if b then e1 else e2;; val cond : bool * int * int -> int = <fun> # let rec fact n = cond ((n = 1), 1, n * fact (n - 1));; val fact : int -> int = <fun> # fact 4;;</fun></fun>…
勉強 プログラミング in OCaml (–3.5 再帰関数まで) 再帰関数難しい。練習問題は明日以降やる。 let 定義 # let one = 1;; val one : int = 1 # let one = "One";; val one : string = 1 この場合、one の値が 1 から "One" に更新されたわけではなく、後か…
読書 シェルプログラミング実用テクニック (–1.3.7) MacのTerminalを持て余しているので読んでみた。 iTerm2を導入してみた。GNU CoreUtilsなどを入れたせいか、色の設定がよくわからないことになってしまった。 プログラミング in OCaml (–§2.2) 前は途中で…
勉強 グラフィクスプログラミング入門 (–ランダムに変化する多角形の描画) WebGLいきなりやるのは少し難しいと感じたのでcanvasで 2D を扱う入門書に入門した。 これはJavaScriptの基礎事項から丁寧に解説していて非常に読みやすい。コメントも丁寧。買って…