Skip to content

Instantly share code, notes, and snippets.

@Killeroid
Created April 13, 2012 09:33
Show Gist options
  • Save Killeroid/2375420 to your computer and use it in GitHub Desktop.
Save Killeroid/2375420 to your computer and use it in GitHub Desktop.
A map push instruction. Iterates top item on exec stack all over a collection
(defn type_map
[type]
(fn [state]
(if (or (not (empty? (type state)))
(not (empty? (:exec state)))
(not (empty? (:float state)))
(number? (top-item :float state)))
(let [items (ensure-list (take (top-item :float state) (type state)))
answer (doall (for [item (ensure-list (reverse (take (top-item :float state) (type state))))]
(list item
(first (:exec state)))))]
;(printf "\nposition_map\n")(flush)
(push-item answer :exec (pop-item :code (pop-item :exec state))))
state)))
(define-registered integer_map (type_map :integer))
(define-registered float_map (type_map :float))
(define-registered string_map (type_map :string))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment