понедельник, 9 апреля 2012 г.

Такой ленивый clojure

Так получилось что работаю сейчас с этим lisp'образным языком. В подробности вдаваться не буду, лишь упомяну что есть в нем ленивые коллекции. Вещь хорошая и нужная. Только с закидонами если можно так сказать. Некоторые из них с наскоку мне решить не удалось. Приведу пример когда ленивые коллекции слишком ленивы.

(def sqn [1 2 3 4 5 6 7 8 9 0])

(defn l-a [prm]
(map #(* %1 2) prm))

(defn l-b [prm]
(map #(/ %1 2) prm))

(println (str "l-a-b " (l-b (l-a sqn))))

и приведенный в документации doall, предназначенный именно для таких случаев, вам так же не поможет. Технически, такое поведение я понимаю. Однако видимо из-за недостатка опыта случаются коллизии наподобие этой.

Будьте проще, используйте join!

Комментариев нет:

Отправить комментарий