支持我有一个[Char]类型的列表,如果我删除了将它们描述为字符的引用,则附带的值是不同类型的值。例如['2','3','4']代表我们更改类型的整数列表。
我有一个类似但更复杂的要求,我需要将[Char]更改为[SomeType],其中SomeType是一些任意类型,对应于没有字符引用的值。
答案 0 :(得分:1)
假设您有一些功能foo :: Char -> SomeType
,您只需将此功能映射到Char
列表。
bar :: [Char] -> [SomeType]
bar cs = map foo cs
答案 1 :(得分:1)
我希望我能正确理解并且有一种方法(如果数据构造函数也只是一个字母) - 你使用Read
的自动派生:
data X = A | B | Y
deriving (Show, Read)
parse :: String -> [X]
parse = map (read . return)
(return
只会将单个字符包装回单个列表,使其成为String
)
λ> parse "BAY"
[B,A,Y]