【发布时间】:2014-12-21 15:46:47
【问题描述】:
Haskell 新手在这里。我在玩这个表达式:
"The sum of 3 and 4 is " ++ (show (3 + 4))
评估良好。这也很好:
"The sum of 3 and 4 is " ++ (show $ 3 + 4)
但是,当我将最后一对括号替换为 $ 时,出现“输入 $ 解析错误”:
"The sum of 3 and 4 is " ++ $ show $ 3 + 4
我不太清楚为什么。我正在关注 LearnYouAHaskell series,上面写着:
'$ 相当于写一个左括号和 然后在表达式的最右侧写一个结束语。'
我错过了什么?
【问题讨论】:
-
您在寻找
(++) "The sum of 3 and 4 is " $ show $ 3 + 4吗? -
是的,这行得通,谢谢!我想知道为什么它不适用于 ++ 的中缀使用?
-
@xdl 你不能有两个相邻的中缀运算符,它没有很好的定义。
1 + * 2会是什么?你会怎么解释呢?$运算符在 Haskell 中没有什么特别之处,它是一个与其他运算符一样定义的运算符。它只是具有较低的优先级并关联到右侧。 -
@bheklilr
$周围没有一些编译器魔法吗?我记得在定义自己的$实现时出现了一些问题。 Here 是我记得的问题的链接。
标签: haskell