也许我应该只接受括号,但我不禁觉得像 Haskell 中存在的美元符号这样的运算符真的会清理代码并提高可读性。
我正在寻找优先/绑定到它后面的所有符号的东西。
putStrLn (show $ 1 + 1)
putStrLn $ show (1 + 1)
putStrLn $ show $ 1 + 1
我知道线程运算符。这些非常有用并且肯定会增加可读性,但它们实际上并没有减少括号数。在大多数情况下,因为它们看起来更类似于函数组合(这将是 Haskell . 运算符)。
也许我应该只接受括号,但我不禁觉得像 Haskell 中存在的美元符号这样的运算符真的会清理代码并提高可读性。
我正在寻找优先/绑定到它后面的所有符号的东西。
putStrLn (show $ 1 + 1)
putStrLn $ show (1 + 1)
putStrLn $ show $ 1 + 1
我知道线程运算符。这些非常有用并且肯定会增加可读性,但它们实际上并没有减少括号数。在大多数情况下,因为它们看起来更类似于函数组合(这将是 Haskell . 运算符)。
$
运算符依赖低绑定优先级,实际上是最低的.
由于 Clojure、Scheme 和 Lisp 不支持用户定义的优先级或固定性,因此不可能像 Haskell 那样定义这些语法结构。
我认为不存在这样的功能,但是使用宏,您可能可以创建一个。如果没有读取器宏(在 Clojure 中不存在),您将永远无法摆脱最外面的一对括号,但您可以消除所有内部的括号。我刚刚学会了如何创建宏,所以如果我以后足够勇敢,我会试一试。:)
支持 Clojure 语法的编辑器大大提高了可读性。我个人使用 emacs、SLIME 等,我什至不再真正看到括号了(尤其是使用 Paredit)。