🦉

MCASEのご紹介

2021/09/04に公開

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