如何指定批量列表分配的类型

时间:2009-09-25 10:24:04

标签: haskell coding-style warnings

我有以下代码,如下所示

[a,b,c,d] = ["a","b","c","d"]

编译器报告警告:

Warning: Definition but no type signature for 'a'
         Inferred type: a :: [Char]

如何使警告静音并指定此表达式的类型?

2 个答案:

答案 0 :(得分:3)

您可以为变量添加显式类型签名:

a, b, c, d :: String
[a,b,c,d] = ["a","b","c","d"]

还应该有一些编译器标志禁用警告,因为通常的做法是不明确指定每个辅助变量的类型。

答案 1 :(得分:2)

GHCi没有错误:

Prelude> let [a,b,c,d] = ["a","b","c","d"]

如果你想给整个片段一个类型,试试,

   Prelude> let x :: [String]
                     x@[a,b,c,d] = ["a","b","c","d"]