Я пытаюсь реализовать эту логику в Clojure (просто пример):Последовательные вычисления в Clojure
a = 1 + 5
b = a + 3
c = a + 4
d = c + a
return f(a, b, c, d)
Лучший код, который я успел написать до сих пор выглядит следующим образом:
(let [a (+ 1 5) b (+ a 3) c (+ a 4) d (+ c a)] (f a b c d))
Это выглядит довольно громоздко, главным образом потому, что в моем реальном случае эти операции «добавить» намного сложнее и могут занимать несколько строк кода. Я предпочитаю писать его как (стиль Лиспа):
(set a (+ 1 5))
(set b (+ a 3))
(set c (+ a 4))
(set d (+ c a))
(f a b c d)
Возможно ли это в Clojure?
Не будет ли перемещение пар внутри 'let' в отдельные строки, чтобы он выглядел так же ясно, как бит Lisp? – toniedzwiedz
** О ** как ясно ... – yegor256
Честно говоря, я нахожу синтаксис Clojure лучше (повторное набор снова и снова кажется бессмысленным). Мое мнение может быть предвзятым, поскольку я видел только упрощенный пример, который вы предоставили. – toniedzwiedz