Реализация цикла for в clojure кажется легким, но как я могу реализовать оператор foreach, который читает каждый элемент в списке (вектор) и что-то делает?
как это...
(foreach i list expression)
Спасибо заранее!
Ответ 1
Просто замените for на doseq, и вы все настроены. Не используйте map, который так же ленив, как for.
Ответ 2
map является функциональным эквивалентом foreach, тогда как doseq является обязательным программированием с побочными эффектами.
map принимает функцию f и коллекцию seqable coll и возвращает лениво оцениваемый результат применения f к каждому элементу коллекции.