このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Catyのtyping rulesの基本

式の構成に従って型付けするが、その構成法は:

  1. パイプ |と;
  2. 配列構成 [,]
  3. オブジェクト構成 {,}
  4. タギング @
  5. 変数生成 >
  6. 変数参照 %
  7. each
  8. each --obj 単なるeachと挙動が違う
  9. take
  10. when分岐
  11. case分岐(難しい)
  12. cond分岐はやらない
  13. beginブロック
  14. repeat
  15. call
  16. forward
  17. start
  18. time これは単なる便利構文

型命題の原子論理式は、次。fはコマンド、A, Bは型。xは変数。Kはカインド。

  1. f:: A->B
  2. A⊆B
  3. A≠0
  4. x∈A
  5. A in K

アスキーで書きたいなら、A⊆B は A <= B、A≠0 は A notnever、x∈A は x <: A とする。

本質的なの命題はIOプロファイルの宣言と型不等式だけ。後はテクニカルな理由で導入している。実際のtyping rulesを書き下すのは後で。