【问题标题】:Writing a function List to a tuple将函数 List 写入元组
【发布时间】:2010-03-18 06:51:30
【问题描述】:

如何将函数从列表写入元组

我已将字符串转换为元组。但我需要将它发送到一个元组。

谁能帮帮我

【问题讨论】:

标签: list haskell types tuples


【解决方案1】:

您不能将任意长的列表转换为元组,因为不同长度的元组被视为不同的类型。但你可以:

listToTuple2 :: [a] -> (a, a)
listToTuple3 :: [a] -> (a, a, a)
listToTuple4 :: [a] -> (a, a, a, a)
listToTuple5 :: [a] -> (a, a, a, a, a)

等等

另见http://www.haskell.org/haskellwiki/Template_Haskell#Convert_the_first_n_elements_of_a_list_to_a_tuple

【讨论】:

  • 非常感谢。我找到了解决方案。但有一些小的说明 listtotuple :: [String] -> (String,String,String) listtotuple [] = error "Empty List" listtotuple (a:b:c:d) = (a,b,c) i尝试仅放置 (a:b:c) 但它不起作用。然后我再放一个。然后它工作。有人能解释一下原因吗
  • @Pradeep:(:) :: 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 匹配任何列表之间的区别。
猜你喜欢
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2014-01-16
  • 1970-01-01
相关资源
最近更新 更多