週末デッドエンド

勉強と日記と怪文書

プログラミング

2021-06-10 Thu. 再帰ヴァリアント型。木構造。

勉強 プログラミング in OCaml (–§ 6.4. 二分木) 二分木 木構造というデータ構造がある。 - ノード:データを格納する。 - ノードは0個以上の子ノードを持つ。 各ノードの子ノードの最大個数が のとき 分木という。 二分木は再帰的に定義できる: - データを…

2021-06-08 Tue.

勉強 プログラミング in OCaml 練習問題 5.5 練習問題の挙動がよくわからないのでトレース。 リストから最初の n 個の値を取り出す再帰関数take let rec take n l = match (n, l) with (0, _) | (_, []) -> [] | (n, x :: rest) -> x :: (take (n - 1) rest)…

2021-06-05 Sat. — リストの操作、クイックソート

勉強 プログラミング 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…

2021-06-04 Fri. — match 式とリストパターン

勉強 プログラミング in OCaml (–§5.2 リストの要素へのアクセス) 練習問題 4.6 fun x y -> yを、コンビネータsとkを関数適用のみで組み合わせた形で表現する。 予想(間違っている) s k x y --> k y (x y) (* ??? *) --> y となってほしいけど、型付けエラー…

2021-06-03 Thu. — 再帰とか高階関数とか。

勉強 プログラミング 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>…

2021-06-02 Wed .—プログラミング in OCaml

勉強 プログラミング in OCaml (–3.5 再帰関数まで) 再帰関数難しい。練習問題は明日以降やる。 let 定義 # let one = 1;; val one : int = 1 # let one = "One";; val one : string = 1 この場合、one の値が 1 から "One" に更新されたわけではなく、後か…

2021-06-01 Tue. WordPressレッスンブック。

読書 シェルプログラミング実用テクニック (–1.3.7) MacのTerminalを持て余しているので読んでみた。 iTerm2を導入してみた。GNU CoreUtilsなどを入れたせいか、色の設定がよくわからないことになってしまった。 プログラミング in OCaml (–§2.2) 前は途中で…

2021-05-31 Mon. グラフィクスプログラミング入門と5月の振り返り。

勉強 グラフィクスプログラミング入門 (–ランダムに変化する多角形の描画) WebGLいきなりやるのは少し難しいと感じたのでcanvasで 2D を扱う入門書に入門した。 これはJavaScriptの基礎事項から丁寧に解説していて非常に読みやすい。コメントも丁寧。買って…