2

也许我应该只接受括号,但我不禁觉得像 Haskell 中存在的美元符号这样的运算符真的会清理代码并提高可读性。

我正在寻找优先/绑定到它后面的所有符号的东西。

putStrLn (show $ 1 + 1)
putStrLn $ show (1 + 1)
putStrLn $ show $ 1 + 1

我知道线程运算符。这些非常有用并且肯定会增加可读性,但它们实际上并没有减少括号数。在大多数情况下,因为它们看起来更类似于函数组合(这将是 Haskell . 运算符)。

4

2 回答 2

9

$运算符依赖低绑定优先级,实际上是最低的.

由于 Clojure、Scheme 和 Lisp 不支持用户定义的优先级或固定性,因此不可能像 Haskell 那样定义这些语法结构。

于 2012-05-27T23:37:35.240 回答
3

我认为不存在这样的功能,但是使用宏,您可能可以创建一个。如果没有读取器宏(在 Clojure 中不存在),您将永远无法摆脱最外面的一对括号,但您可以消除所有内部的括号。我刚刚学会了如何创建宏,所以如果我以后足够勇敢,我会试一试。:)

支持 Clojure 语法的编辑器大大提高了可读性。我个人使用 emacs、SLIME 等,我什至不再真正看到括号了(尤其是使用 Paredit)。

于 2012-05-27T23:40:01.603 回答