20 lines
324 B
Plaintext
20 lines
324 B
Plaintext
|
|
||
|
|
||
|
(fn recogniser [keymap]
|
||
|
(var m keymap)
|
||
|
{
|
||
|
:accept
|
||
|
(fn [_ c]
|
||
|
(let [v (. m c)]
|
||
|
(match (type v)
|
||
|
"table" (do
|
||
|
(set m v)
|
||
|
(values nil (.. c " ")))
|
||
|
"function" (do
|
||
|
(set m keymap)
|
||
|
v))))
|
||
|
})
|
||
|
|
||
|
|
||
|
{ : recogniser }
|