【发布时间】:2010-03-18 06:51:30
【问题描述】:
如何将函数从列表写入元组
我已将字符串转换为元组。但我需要将它发送到一个元组。
谁能帮帮我
【问题讨论】:
-
你想解决什么问题?
如何将函数从列表写入元组
我已将字符串转换为元组。但我需要将它发送到一个元组。
谁能帮帮我
【问题讨论】:
您不能将任意长的列表转换为元组,因为不同长度的元组被视为不同的类型。但你可以:
listToTuple2 :: [a] -> (a, a)
listToTuple3 :: [a] -> (a, a, a)
listToTuple4 :: [a] -> (a, a, a, a)
listToTuple5 :: [a] -> (a, a, a, a, a)
等等
【讨论】:
(:) :: a -> [a] -> [a]。 cons 运算符的 RHS 必须是一个列表。你可以只使用模式匹配listtotuple [a,b,c] = (a,b,c)。
[a,b,c] 等价于(a:b:c:[]),并且将匹配恰好包含三个元素的列表。要匹配三个或更多的列表(并将名称绑定到前三个),您可以使用 (a:b:c:d) 或者,因为在这种情况下,您不需要将列表的其余部分称为 d、@987654329 @。注意[] 匹配空列表和_ 或d 匹配任何列表之间的区别。