functional-programming - 支持操作员作为一等公民的语言如何遵守操作顺序?
问题描述
在诸如 F# 之类的中缀运算符是“函数”或一等公民的编程语言中,它们如何遵守诸如 2 * 4 + 6(其计算结果为 (2 * 4) + 6)之类的运算顺序?
解决方案
对于 Haskell,您可以指定运算符的优先级和关联性。Scala 的优先级基于operator 的第一个字符,关联性基于最后一个字符。我不知道 F#,但看起来它也是基于使用的字符。
其他一些语言只允许您重载现有的运算符,而不是创建自己的运算符,因此它们保留了内置对应项的优先级和关联性。
推荐阅读
- html - Visual Studio Code 没有颜色或代码建议
- reactjs - 如何获取 react-bootstrap 道具的类型
- python - 在 Hotel.com 上抓取子页面时出现问题
- java - 字体与 OpenJDK 未对齐
- java - 非常简单的翡翠问题(严重:无法创建代理)
- javascript - 开玩笑的按钮测试无法正常工作
- vba - PPT VBA:将形状的强调色从一种主题颜色更改为另一种
- excel - VBA Excel 中的运行时错误 9“下标超出范围”
- scala - 如何在没有连接的情况下更改 Spark `DataFrame.map()` 操作中的架构?
- ios - 在 BottomTabNavigator 上使用 safearealayoutguide 或 SafeAreaView 删除空白