Implementing a for loop in clojure seems to be easy, but how can I implement a foreach statement that reads each element in the list(vector) and does something?
like this...
(foreach i list expression)
Thanks in advance!
Just replace for with doseq and you're all set. Don't use map, which is just as lazy as for.
for, but of course people may wind up reading this who don't.map is the functional equivalent of foreach, whereas doseq is for imperative programming with side-effects.
map takes a function f and a seqable collection coll and returns the lazily-evaluated result of applying f to each element in the collection.
(map inc [1 2 3 4])
=> (2 3 4 5)
(map (fn [x] (* x 2)) [1 2 3 4])
=> (2 4 6 8)
(map dec (take 5 (range)))
=> (-1 0 1 2 3)
map:(map (fn [i] …) list)?