我无法理解这种类型的签名:
config :: Config Snap ()
config = setPort 8888 defaultConfig
->
在哪里说明params并返回函数的类型?我在这里缺少什么?
答案 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