Q:

Use of `->` (the "thread-first" macro) Clojure

http://clojuredocs.org/clojure_core/clojure.core/-%3E
(def step #(-> [(% 1) (+ (% 0) (% 1))]))
(def fib #(map first (iterate step [0 1])))

The code above generates Fib sequence, and I want to rewrite the 2nd line like below:
(def fib #(-> (iterate step [0 1]) (map first)))

or
(def fib #(-> [0 1] (iterate step) (map first)))

However, the both code failes  when
(println
 (take 10 (fib))
)

with an error
java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.core$first

Is it impossible to rewrite like these or any proper way?
Thanks.

A:

You want the ->> thread-last macro. 

