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

Haskell:<*>如何发音?

在Haskell中,<*>是一个操作符,用于将两个函数组合在一起。它的发音类似于英语中的 "apply"。因此,可以将其发音为 "apply"。

在Haskell中,<*>操作符用于将两个函数组合在一起,它的类型签名如下:

代码语言:txt
复制
(<*>) :: Applicative f => f (a -> b) -> f a -> f b

这个操作符可以将一个接受两个参数的函数应用到两个值上。例如,如果我们有一个函数f和两个值xy,我们可以使用<*>操作符将它们组合在一起:

代码语言:txt
复制
f <$> x <*> y

这将返回一个新的函数,该函数将xy作为参数并返回结果。

在许多情况下,<*>操作符可以用于简化代码,使其更易于阅读和理解。例如,假设我们有一个函数add,它接受两个整数并返回它们的和:

代码语言:txt
复制
add x y = x + y

我们可以使用<*>操作符将add函数应用到两个整数上:

代码语言:txt
复制
add <$> 2 <*> 3

这将返回一个新的函数,该函数将23作为参数并返回结果5

总之,<*>操作符是Haskell中的一个重要操作符,它可以将两个函数组合在一起,使代码更易于阅读和理解。

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

相关·内容

Haskell

Haskell是一种标准化的、通用纯函数式编程语言,有非限定性语义和强静态类型,在Haskell中,函数是一等公民。...ghc包含了三个主最要的部分: ghc 编译器 ghci 交互式解析器和调试器 runghc 以脚本的方式运行Haskell 而我们即将学习的起点就是在ghci中来练习Haskell的基本语法。...Haskell每一个函数都非常颗粒度,来解决很小的问题,如果我们无法理解这种很小的颗粒度,根本很难从小组合到强大的处理流程。是的,这就是Haskell。...(注明:本文不是投资建议,仅仅是从Haskell引发出来的Cardano项目) 是的,Cardano就是用Haskell来编写的,(我这样的渣渣也仅仅是阅读和学习)Haskell的用户大部分都是教授或者是数学领域的牛人...回归语言Haskell,函数式的编程其实有一点上,大家都很清楚,用很少的代码来完成一件事情。Haskell还可以定义跟数学的过程一一对应,这就很有意思了。

82230

Monad_Haskell笔记10

P.S.关于computation context的详细信息,见Functor与Applicative_Haskell笔记7 用来解决context相关计算中的另一个场景:怎样把一个具有context的函数应用到具有...能够把一个输入普通值输出具有context值的函数,应用到一个具有context的值 (>>=) :: (Monad m) => m a -> (a -> m b) -> m b 如果你有一个具有context的值m a,你能如何把他丢进一个只接受普通值...也就是说,你如何套用一个型态为a -> m b的函数至m a? 用来解决context相关计算中的最后一个场景:怎样把一个输入普通值输出具有context的值的函数,应用到具有context的值?...,因为默认所有的小写字母类型参数都是任意的: In Haskell, any introduction of a lowercase type parameter implicitly begins with...仔细看看刚才是如何表达中间环节的失败的:Nothing some thing。这个Nothing就像是硬编码装上去的炸弹,是个纯静态场景 那想要动态爆炸的话,怎么办?

70450

newtype_Haskell笔记8

Applicative实现,所以造出了ZipList,让它以拉链结对的方式实现Applicative P.S.这里提到的是Applicative类定义的行为,具体见Functor与Applicative_Haskell...除此之外,就与data关键字没什么区别了 P.S.关于值构造器与参数,见类型_Haskell笔记3 三.对比type和data 关键字 作用 应用场景 data 定义自己的(数据)类型 想要定义完全新的类型...想让类型签名更清楚(语义化)的时候 newtype 将现有的类型包成一个新的类型,得到的类型与原类型不同,不能换用/混用 想让现有类型具有一种不同的接口(typeclass)实现时 四.newtype与惰性计算 Haskell...的哪个值构造器,后者则不需要 但奇怪的是,Tuple明明只有一个值构造器(不需要“看应该用Tuple的哪个值构造器”): data () = () 我们知道没必要去检查应该用Tuple的哪个值构造器,但Haskell...MyTuple a b = MyTuple {getTuple :: (a, b)} > sayHello (MyTuple _) = "hh" > sayHello undefined "hh" 确实如此,Haskell

59430

基础语法_Haskell笔记1

一.简介 Haskell是一种纯函数式语言(purely functional programming language),其函数式特性的纯度没有争议 命令式语言要求你提供求解的步骤,Haskell则倾向于让你提供问题的描述...通过命令告诉电脑要做什么,比如求和是通过循环结构遍历所有的数,相加并记录其和 函数式思维:通过函数来描述出问题是什么,比如求和是把第一个数与其余树的和相加 P.S.关于思维模式的差异,请查看一场函数式思维模式的洗礼 Haskell...所以,经验原则是给所有负数字面量都带上括号,如(-3) P.S.Haskell只有一个一元运算符,就是一元减号-,具体见Unary operator 逻辑运算 3个运算符:与(&&),或(||),非(not...infix),都是左结合的(infixl的l表示left associative),函数签名也相同(Num a => a -> a -> a) 优先级的范围是0-9,值越大越优先 三.函数调用 语法格式 Haskell...函数默认都是柯里化的,都只接受一个参数: In Haskell, all functions are considered curried: That is, all functions in Haskell

1.8K30
领券