Haskell类型签名

时间:2015-07-06 06:54:12

标签: haskell

我无法理解这种类型的签名:

config :: Config Snap ()
config = setPort 8888 defaultConfig

->在哪里说明params并返回函数的类型?我在这里缺少什么?

2 个答案:

答案 0 :(得分:4)

->中缀类型构造函数在左侧采用参数类型,在右侧采用结果类型。 config没有参数,在左边没有任何内容写->是没有意义的,所以结果类型是唯一的类型。

您可以使用您更熟悉的类型执行相同的操作。例如:

example1 :: Int
example1 = 1

example2 :: Maybe Integer
example2 = Just 2

example3 :: [Double]
example3 = [1,2,3]

example4 :: Either String Int
example4 = Right 4

答案 1 :(得分:4)

这不是真正的功能 - 它是一个值(它是快照的配置):Snap Config Snap monad和 ()其他(other)信息就在其上。

正如您可以在文档中看到的那样,它或多或少是一个起点,您可以使用functions here来设置其他信息。

所以从某种意义上讲,它和写作一样

myInt :: Int
myInt = 4