繁体   English   中英

如何使这个列表解构在 haskell 中运行良好?

[英]How can I make this list deconstruction work well in haskell?

我有 2 个练习,但我不明白如何让它们工作。 我试图弄清楚,但我不明白。 我能得到一些帮助吗?

  1. 指定从列表生成有序对的函数。 该对的第一个元素是列表的第一个元素,该对的第二个元素是列表尾部的一部分。 我们可以假设列表不为空。
headTail :: [a] -> (a, [a])
headTail (l: ls) = (headTail l, [ls])
  1. 给出获取两个列表并生成一个有序对的函数,其中的第一个元素是第一个列表的第一个元素,其中的第二个元素是第二个列表的第一个元素! 我们可以假设没有一个列表是空的。
doubleHead :: [a] -> [b] -> (a, b)
doubleHead (l:ls) = 

我会在这两种情况下使用模式匹配。

(l:ls)将列表的第一个元素分配给l ,将其余元素分配给ls 您可以按照说明将它们作为元组返回。

headTail :: [a] -> (a, [a])
headTail (l:ls) = (l, ls)

这里我们只关心两个列表的第一个元素。 因此,我们将它们模式匹配为xy并且根本不捕获其余部分(由_表示)。 并将它们作为元组返回。

doubleHead :: [a] -> [b] -> (a, b)
doubleHead (x:_) (y:_) = (x, y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM