Я написал следующий код для вычисления Величайшего общего делителя двух положительных чисел. Есть ли какие-то вопросы в коде, которые не являются оптимальными или достаточно сложными, и если да, то что будет более cloujerian способом делать GCD?Самый большой общий делитель в Clojure
(def gcd (fn [a b] (->> (map (fn [x]
(filter #(zero? (mod x %)) (range 1 (inc x))))
[a b])
(map set)
(apply clojure.set/intersection)
(apply max))))
(gcd 1023 858)` => 33
Спасибо. Как я новичок, не могли бы вы объяснить, какие манипуляции с последовательностями для числовых операций в моем коде? И я был бы признателен, если бы вы могли представить мне источник для получения дополнительной информации о преобразователях. – amirteymuri
И алгоритм, который вы использовали в евклидовом алгоритме? – amirteymuri
Я буду редактировать больше о последовательностях и да, thats euclids –