我遇到了使用箭头运算符的Haskell类型声明,如下所示:
type Acceleration = State -> Vec
那怎么可能呢?因为我以前从未见过这种用法(在学习Haskell教程中)。
如果声明为OK,则其定义应为什么样? 我该如何使用这种类型?
答案 0 :(得分:5)
这是类型的同义词。表示Acceleration
是从State
到Vec
的函数。
简化一下,想象一下从Int
到String
的功能集。我们称它们为Frobnicators
。
type Frobnicator = Int -> String
我们可以定义一个这样的函数,然后可以说它的类型为Frobnicator
。
foo :: Frobnicator
foo = show . (+3)