在使用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
答案 0 :(得分:5)
(Show a) =>
是一种类型约束,它将类型a
限制为类Show
的实例,而a -> b
是一种函数。所以这段代码
foo :: forall a. (Show a) => a -> b
是从foo
到a
的函数b
,类型a
必须有类Show
的实例
在OO语言中,它将是这样的
public B foo<A,B>(A x) where A:IShow