首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Haskell中缀表示法,左边有2个参数

Haskell中缀表示法是一种编程语言中的表达式表示方法,其中操作符位于操作数之间,且操作符具有固定的优先级和结合性。

在Haskell中,函数可以以中缀形式调用,这是通过将函数名放置在操作符之间实现的。如果函数的名字只包含特殊字符,那么它可以被用作中缀函数。

左边有2个参数表示在中缀表示法中,操作符左边的两个参数用于执行操作。在Haskell中,函数调用可以使用中缀表示法,这使得代码更加可读且易于理解。

以下是一个示例,展示了如何在Haskell中使用中缀表示法和左边两个参数:

代码语言:txt
复制
-- 定义一个中缀函数add,将两个参数相加
infixl 6 `add`
add :: Int -> Int -> Int
add a b = a + b

-- 使用中缀表示法调用add函数
result = 10 `add` 5
-- 结果为15

在上述示例中,我们定义了一个中缀函数add,它将两个整数相加。通过在调用函数时使用反引号()将函数名包围起来,我们可以以中缀形式调用该函数。infixl 6用于指定操作符的结合性和优先级,其中infixl`表示左结合,数字6表示优先级。

Haskell中的中缀表示法使得代码更加自然和易读。它常用于定义自定义数据类型的操作,例如列表的连接、数值的加法等。

腾讯云相关产品和产品介绍链接地址:

  • 云函数 SCF:腾讯云的无服务器计算产品,用于运行事件驱动的代码片段,可与其他腾讯云服务集成。
  • 容器服务 TKE:腾讯云的容器编排服务,支持快速部署和管理应用容器,提供弹性伸缩和高可用性。
  • Serverless Framework:一种用于构建和部署无服务器应用的开源框架,可与腾讯云等多个云服务商集成。

请注意,以上提到的腾讯云产品仅作为示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基础语法_Haskell笔记1

,这会带来解析时的不确定性(歧义,编译器不知道该怎样理解)。...语法格式 Haskell里的函数调用默认是前缀语法,例如: succ 2 min 1 (-2) 与Bash脚本的函数调用语法一样,函数名 参数1 参数2 但运算符作为特殊的函数,默认要以中缀形式调用,...,要求左边是函数,右边是其参数 P.S.还有一个很有意思的东西:($ 2) sqrt,中缀函数柯里化的小把戏 柯里化 Haskell函数默认都是柯里化的,都只接受一个参数: In Haskell, all...,=后面是函数体 2个特点: 声明顺序无所谓 函数名首字母不能大写,不能数字开头 P.S.数学里把相似的东西用x x' x''的命名习惯表示,在Haskell里也可以这样做: y x = x ^ 2 y....匿名函数中的->与类型声明中的->语义相同,都表示“映射到”(maps to) 函数组合 数学中的函数组合的表达方式是f·g(x) = f(g(x)),Haskell与之类似: fg = f . g

1.9K30

热爱函数式的你,句句纯正的 Haskell【表达式篇】

实际上,if..then..else 是一种结构性的表达式,也可以理解为一种运算符,属于:混合位置运算符; 而普通的加法,处于两个参数中间,称为:中缀运算符; 函数,位于一个参数前面,可理解为:前缀运算符...、后缀、混合位置); 实际上,运算符共有 3 个属性: 优先级(在 Haskell 中,十个优先级(0 ~ 9)); 结合性(分为左结合、右结合、无结合); 位置(前、中、后、混合); 提供一个优先级和结合性的表...:表示从一个列表中取出第 n 个元素(从 0 开始) Prelude> [1,2,3,4,5]!!...1 2 再比如 mod :表示取余 Prelude> mod 7 2 1 一个很重要的运算符要特别提醒:$ Prelude> :t ($) ($) :: (a -> b) -> a -> b 用来干嘛的呢...、$ 等; 这些都是为后面揭开 Haskell 函数式编程神秘面纱的基础,期间也能一窥这种把函数当计算的奇妙之处,即使不能在开发生产中用到 Haskell,对于平常的编程思考也是大有裨益的,希望你受用到

1.1K30
  • 当我们谈论Monad的时候(二)

    先来看Optional,由于它只有两种“状态”,因此在Haskell中可以这么表示 data Optional a = Value a | Empty deriving Show 然后我们来实现它的...不过由于列表可以是任意长的,因此需要定义一个链状的结构 data List a = Nil | Cons a (List a) infixr 5 `Cons` 在Haskell中,用`包裹的函数可以作为中缀函数使用...Haskell中全符号的、被小括号包裹的函数默认是中缀的,比如这个函数的调用就是中缀形式f xs。接受一个容器内的函数和值,并将运算之后的结果重新放在容器中。...在Haskell中是这么表示的 pure :: a -> f a 因此就可以如此表示了 pure (*) Value 2 Value 3 总结一下,就可以得到Haskell对Applicative...而Monad的计算流程是可变的,这也意味着它的计算“上下文”。一般的计算场景中都是上下文的,比如IO运算。但是这种没有依赖的计算场景其实也是存在的,比如并发、Parser。

    80610

    编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(二)语法分析

    四则运算的语法规则(语法规则是分层的) x* 表示 x 出现零次或多次 x | y 表示 x 或 y 将出现 ( ) 圆括号,用于语言构词的分组 以下规则从左往右看,表示左边的表达式还能继续往下细分成右边的表达式...递归下降分析 递归下降分析,也称为自顶向下分析。按照语法规则一步步递归地分析 token 流,如果遇到非终结符,则继续往下分析,直到终结符为止。...LL(0)分析 递归下降分析是简单高效的算法,LL(0)在此基础上多了一个步骤,当第一个 token 不足以确定元素类型时,对下一个字元采取“提前查看”,可能会解决这种不确定性。...表达式代码生成 我们通常用的四则运算表达式是中缀表达式,但是对于计算机来说中缀表达式不便于计算。所以在代码生成阶段,要将中缀表达式转换为后缀表达式。...示例: 中缀表达式: 5 + 5 转换为后缀表达式:5 5 +,然后再根据后缀表达式生成代码。

    88660

    Haskell 基础

    中的if语句与其他语言不同,else是不可以省略的 doubleSmallNum x = if x > 10 then x else x * 2 Haskell 中的 if 语句的另一个特点就是它其实是个表达式...1,2,3,4,5,6] 用 : 连接一个元素到list头,它读作“cons”即construct简称 Prelude> 1:[2,3] [1,2,3] 但是[2,3]:1是不被允许的,因为:的第一个参数必须是单个元素...,第二个参数必须是list 字符与字符串 Prelude> "this is string" this is string 双引号表示字符串。...单个字符用”表示 Prelude> 't' t 字符串实际是字符列表, Prelude> 't' : "his is string" this is string Prelude> "this is"...reverse 反转list take 返回前几个元素 maximum 返回最大元素 minimun 返回最小元素 sum 返回所有元素之和,product返回积 elem 判断一个元素是否存在于list中,通常中缀调用

    6910

    字符串表达式计算(a+b(a-b))的思路与实践

    本篇为上篇,介绍原理,简单实现一个工具,输入字符串表达式,解析其中的参数,输入参数计算结果。...维基百科:中缀表示(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4)。...与前缀表达式(例:+ 3 4 )或后缀表达式(例:3 4 + )相比,中缀表达式不容易被电脑解析逻辑优先顺序,但仍被许多程序语言使用,因为它符合大多数自然语言的写法。...前缀表示 (+ 3 4 )也叫 波兰表示 后缀表示 (3 4 + )也叫 逆波兰表示 在维基百科的说明中,也给出了和其相关的另外两种表示,以及用于把中缀表达式转换到后缀表达式或树的算法:调度场算法...,转换成后缀表达式 第二步将队列中的表达式加入表达式栈中 第三步使用表达式树进行计算 返回值处理 已知的错误除以0和溢出的异常,所以直接捕获返回null,也可以在计算除数的时候判断值为0就直接返回null

    37440

    scala快速入门系列【方法】

    方法定义 一个类可以自己的方法,scala中的方法和Java方法类似。但scala与Java定义方法的语法是不一样的。 ---- 定义方法 语法 ? [!...NOTE] 在参数类型后面加一个 * 号,表示参数可以是0个或者多个 示例 定义一个计算若干个值相加的方法 调用方法,传入以下数据:1,2,3,4,5 参考代码 ?...---- 方法调用方式 在scala中,以下几种方法调用方式, 后缀调用法 中缀调用法 花括号调用法 无括号调用法 在后续编写spark,flink程序时,我们会使用到这些方法...示例 使用后缀Math.abs求绝对值 参考代码 ? ---- 中缀调用法 语法 ? 例如: 1 to 10 [!...TIP] 如果有多个参数,使用括号括起来 示例 使用中缀 Math.abs 求绝对值 ? 操作符即方法 来看一个表达式 ? 大家觉得上面的表达式像不像方法调用?

    37430

    让Monad来得更猛烈些吧_Haskell笔记11

    [0,8,-5,2,7](pivot是9),继续下去是[-5](pivot是0),然后左边就是[]了(pivot是-5),(0的)另一边的第一趟左边是[2,7],继续下去左边就是[]了。...~(a, w)中的~表示惰性模式匹配(具体见Haskell/Laziness | Lazy pattern matching): prepending a pattern with a tilde sign...函数来构造Writer,例如: > writer (1,"abc") :: Writer String Int WriterT (Identity (1,"abc")) 更进一步地,可以用更清晰的do表示来描述...如果频繁向List尾部插入的话,每次都需要遍历构建左边的List,效率很低。那么,有没有更高效的List? ,叫做Difference list,能够进行高效的append操作。...这样做是为了把一个值包进函数context,使之能够参与函数运算: 要让一个函数能够是某个定值的唯一方就是让他完全忽略他的参数

    1.5K40

    Haskell 自定义type与typeclass

    前言 在看《Haskell趣学指南》这本书的Build Our Own Type and Typeclass一章时,不是很好理解,这里结合《Real World Haskell》这本书做一下记录。...Book之后的Int String [String] 是类型的组成部分 在这个例子中,Int表示书ID, String表示书名,[String]表示作者 上面的描述其实很像OOP中的累的构造方法,BookInfo...> 跟golang中的type关键字或者c/c++中的typedef 很像 类型别名也可以参数 type AssocList k v = [(k,v)] type IntMap v = Map Int...Prelude 中定义了一种叫做*Mayb*的类型:它用来表示这样一种值——既可以值也可能空缺,比如数据库中某行的某字段就可能为空。...ghci> 3 `Cons` (4 `Cons` (5 `Cons` Empty)) Cons 3 (Cons 4 (Cons 5 Empty)) 我们可以只用特殊字符来定义函数,这样他们就会自动拥有中缀的性质

    7210

    2021年大数据常用语言Scala(十二):基础语法学习 方法调用方式

    ---- 方法调用方式 在scala中,以下几种方法调用方式, 后缀调用法 中缀调用法 花括号调用法 无括号调用法 在后续编写spark、flink程序时,我们会使用到这些方法调用方式。...语法 对象名.方法名(参数) 示例 使用后缀Math.abs求绝对值 参考代码 scala> Math.abs(-1) res3: Int = 1 中缀调用法 语法 对象名 方法名 参数 例如:1 to...TIP] 如果有多个参数,使用括号括起来 示例 使用中缀Math.abs求绝对值 scala> Math abs -1 res4: Int = 1 操作符即方法 来看一个表达式 1 + 1 大家觉得上面的表达式像不像方法调用...DANGER] 方法只有一个参数,才能使用花括号调用法 示例 使用花括号调用法Math.abs求绝对值 参考代码 scala> Math.abs{-10} res13: Int = 10 无括号调用法...如果方法没有参数,可以省略方法名后面的括号 示例 定义一个无参数的方法,打印"hello" 使用无括号调用法调用该方法 参考代码 def m3()=println("hello") m3()

    32240
    领券