为什么不用括号在haskell中乘以负数是不可能的

栏目: 编程语言 · 发布时间: 7年前

内容简介:翻译自:https://stackoverflow.com/questions/26073878/why-it-is-impossible-to-multiply-negative-numbers-in-haskell-without-brackets
在haskell gchi中乘以5 * -3给我和错误.但乘以5 *( – 3)可以正常工作.为什么需要括号?
$ghci
GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> 5 * -3

<interactive>:2:1:
    Precedence parsing error
        cannot mix `*' [infixl 7] and prefix `-' [infixl 6] in the same infix expression
Prelude> 5 * (-3)
-15
Prelude>
因为在Haskell中如何指定 unary minus

运算符.不幸的是,它有点神奇.这是语言规范的一个奇怪的角落.

一元减号是该语言中唯一的一元运算符.支持一元减法语法只是为了支持否定函数的语法糖.

一方面,这让我们–7与-7相同.另一方面,它打破了其他的东西,比如节语法.

正如您所看到的,在编写混合固定表达式时会造成混淆.

您需要使用negate括起来,如下所示:

5 * (-3)

翻译自:https://stackoverflow.com/questions/26073878/why-it-is-impossible-to-multiply-negative-numbers-in-haskell-without-brackets


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

About Face 4: 交互设计精髓

About Face 4: 交互设计精髓

[美] 艾伦·库伯、[美] 罗伯特·莱曼、[美] 戴维·克罗宁、[美] 克里斯托弗·诺埃塞尔 / 倪卫国、刘松涛、杭敏、薛菲 / 电子工出版社 / 2015-10 / 118.00元

《About Face 4: 交互设计精髓》是《About Face 3:交互设计精髓》的升级版,此次升级把全书的结构重组优化,更加精练和易用;更新了一些适合当下时代的术语和实例,文字全部重新编译,更加清晰易读;增加了更多目标导向设计过程的细节,更新了现行实践,重点增加 移动和触屏平台交互设计,其实《About Face 4: 交互设计精髓》多数内容适用于多种平台。 《About F......一起来看看 《About Face 4: 交互设计精髓》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具