Skip to content

Instantly share code, notes, and snippets.

@mzdravkov
Created September 27, 2015 19:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mzdravkov/d13d8083849f6dcc1cd7 to your computer and use it in GitHub Desktop.
Save mzdravkov/d13d8083849f6dcc1cd7 to your computer and use it in GitHub Desktop.
(defmacro pattern
[n predecessor]
(vec
(concat (repeat n '_)
predecessor
'(& r))))
(defmacro my-match
[state predecessor]
(let [diff (- (count state)
(count predecessor))]
(conj (concat
(apply concat
(for [i (range (inc diff))]
(list [(list (list 'pattern i predecessor) :seq)] 'true)))
'(:else nil))
[state]
'match)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment