当前位置: 首页 > 知识库问答 >
问题:

Haskell函数合成算子与空间算子优先级

程峻
2023-03-14

首先,我对Haskell很陌生,目前我只是在努力准备考试。我有这样的表达式:
reverse。以3[1..10]为例,得到的是一个错误。因为space运算符的优先级(10)比.运算符(9)大,上面的表达式等效于反转。(取3[1..10]),这是的反向。([1,2,3]),这是reverse和list之间的组合,没有意义,对吗?我正在努力确保我做对了,我真的没有在互联网上找到类似的东西。

共有1个答案

向和歌
2023-03-14

你基本上是对的。前缀函数应用程序(您称之为“空格运算符”)比任何中缀运算符绑定得更紧密。为了完整起见,修复错误的方法是执行(reverse.take3)[1..10]反向操作。取而代之的是3$[1..10]

 类似资料:
  • 我发现优先级和关联性是一个很大的障碍,让我理解语法在haskell代码中试图表达的内容。 例如, 通过实验,我终于明白了, 你们谁能提供一些参考,让语法更容易掌握吗?

  • Haskell中的函子是一种可以映射不同类型的函数表示。它是实现多态性的高级概念。根据Haskell开发人员,列表、映射、树等所有类型都是Haskell函数的实例。 函子是一个内建的类,它的函数定义类似 − 根据这个定义,可以得出这样的结论:Functor是一个函数,它接受一个函数,比如,然后返回另一个函数。在上面的例子中,是函数的一种通用表示。 在下面的示例中,我们将看到Haskell Func

  • He has told you, O mortal, what is good;and what does the LORD require of youbut to do justice, and to love kindness,and to walk humbly with your God?(MICAH 6:8) 世人哪,耶和华已指示你何为善,他向你所要的是什么呢?只要你行公义,好怜悯,存

  • 正则表达式与数学表达式的不同在于,数学表达式执行数学运算,而正则表达式执行字符运算;相同的是,它们都按一定的优先级进行运算 运算符 操作 \ 转义符 () 捕获、匹配、断言 [] 字符类 *+? 限定符 {} 范围 ^$ 位置和顺序 | 或

  • 如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。 下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。 下面这张表(与Python参考手册中的那个

  • 从高到低顺序如下: ^ not - (一元运算) * / + - ..(字符串连接) < > <= >= ~= == and or