🦉
MCASEのご紹介
MCASEのご紹介。
Introduction
ELMなんかの型にうるさい言語で列挙型を定義して条件分岐すると、条件の網羅性をコンパイル時にチェックしてくれます。
羨ましかったので作りました。
MCASE
MEMBER
型を定義してMCASE
で分岐するとマクロ展開時に網羅性をチェックしてくれます。
* (deftype state () '(member :a :b :c))
STATE
* (mcase state :dummy
(:a "A")
(:b "B"))
=> ERROR Missing member (:C) :of STATE
こういうちょっとした言語機能を気軽に自作して追加できるのがLisp一族の強みですよね。
Discussion