HtDP

I. Fixed-Size Data

  • デザインレシピ
    • https://htdp.org/2022-8-7/Book/part_one.html#(part._sec~3adesign-func)
    • プログラムを作る手順
      1. 定数を洗い出す
      2. データを定義する(実装ではない)
      3. 必要な関数を定義する(実装ではない)
      • 目的・シグネチャを定義する
      • wish listをつくる 5. 例を考える
      • テストの形で表現 6. 実装する 7. テストで確かめる
  • I.4. Intervals, Enumerations, and Itemizations
    • 条件を使う上での3つの分類を提示
      • enumerations(列挙):enum
        • 有効な値が有限個存在して、そのうちのどれかを選ぶ
      • intervals(区間):
        • 有効な値が無限個存在するので、enumerationsではうまくいかない
          • $0 \leq x \leq 1$を満たす$x \in \mathbb{R}$は無限にある
        • そこで、有限個の区間を設定して、無限にある値がいずれかの区間に属するようにする
        • テストは区間の中と、境界で行う
          • 同値分析だっけ?情報処理技術者試験でやった
      • itemizations(箇条書き…ではない気がするな):
        • enumerationsとintervalsの組み合わせ
          • NorF#falseか、Number(interval)に属する数値
          • RustのOption<T>Noneというたった一つの値かSome(T)という無限種類ある値のいずれか
    • step4のtemplateでcondを使う
    • 4.7
      • Finite State Machineの導入
  • 5.
    • 構造体 structure type は以下の関数を定義する
      • constructor
      • selector (getter)
      • structure predicate (e.g. posn?)

Backlinks