EFT*_*FTH 13 haskell types declaration
我经常发现自己编写了同一类型的多个函数.我们称之为这种类型FuncType.我可能写这样的东西:
funcA :: FuncType
funcB :: FuncType
funcC :: FuncType
funcD :: FuncType
-- Implementations
Run Code Online (Sandbox Code Playgroud)
这感觉就像许多不必要的打字一样(键入键盘时键入,而不是声明功能类型).有没有办法更简洁地做到这一点?我想要的东西看起来像是:
(funcA, funcB, funcC, funcD) :: FuncType
-- Implementations
Run Code Online (Sandbox Code Playgroud)
我真的试图谷歌这个,但我空了.如果这不是该语言的一个特征,为什么不呢?我错过了什么吗?如果我发现自己需要这个,我会做错吗?
Mas*_*tic 18
在没有括号的情况下做你尝试过的事情.
funcA, funcB, funcC, funcD :: FuncType
Run Code Online (Sandbox Code Playgroud)
在Haskell 2010报告中,您可以在第4章(声明和绑定)中看到类型签名(gendecl)如下所示:
vars :: [context =>] type
Run Code Online (Sandbox Code Playgroud)
而vars像这样:
var-1 , … , var-n
Run Code Online (Sandbox Code Playgroud)
这正是您正在寻找的形式.
旁注:如果Haddock 在该()列表中的每个符号周围找到该类型签名,它将应用文档vars.