flan/web/examples/enums.flan

15 lines
381 B
Plaintext

(defenum Key
[space 32 escape 256 left 263 right 262])
(defn key-name [k Key] str
(cond
(= k :space) "space"
(= k :escape) "escape"
:else "an arrow"))
(defn main [] ()
;; :space resolves against the parameter's enum at compile time.
;; A typo is an error here, not a wrong number later.
(println (key-name :space))
(println (key-name :left)))