gpt4 book ai didi

functional-programming - 有没有更简洁的方式来编写这段代码?

转载 作者:行者123 更新时间:2023-12-04 10:12:01 25 4
gpt4 key购买 nike

我一直在学习 Clojure,因为我来自 Ruby,而且在拥有 Java 背景之前,我很难在程序上进行思考。

有没有更“lispy”的方式来编写这段代码,或者这可以吗?

(defn foo
([s t]
(let [x (+ 4 (- t s))]
(if (> 2 (if (> 6 x)
x
6)
x)
x
2))))

最佳答案

在 clojure 中,就像在任何其他语言中一样,通常最好在适用时使用内置函数。所以既然 clojure 有一个 min和一个 max功能,因此您可以替换您的 if与:

(max 2 (min 6 x))

如果 clojure 的标准库中不存在这些函数,我会建议定义它们,因为将逻辑放在 min 中。和 max进入它们自己的函数会产生比将它们全部放在 foo 中更好的代码功能。

关于functional-programming - 有没有更简洁的方式来编写这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com