在Purescript;有什么区别 - >和=&;;?

时间:2016-02-25 23:02:09

标签: purescript

在使用PureScript教程时,代码示例开始使用“=>”没有介绍它。结果我不明白何时使用'=>'而不是' - >'。

例如,这使用'=>':

instance showArray :: (Show a) => Show (Array a) where
    show array = "[" <> map show array <> "]"

这里使用' - &gt;':

greet :: forall r. { name :: String | r} -> String
greet namedThing = "Hello, " ++ namedThing.name

1 个答案:

答案 0 :(得分:5)

(Show a) =>是一种类型约束,它将类型a限制为类Show的实例,而a -> b是一种函数。所以这段代码

foo :: forall a. (Show a) => a -> b

是从fooa的函数b,类型a必须有类Show的实例

在OO语言中,它将是这样的

public B foo<A,B>(A x) where A:IShow