【发布时间】:2014-10-18 14:16:12
【问题描述】:
所以我有一个元组列表
lis = [(5,6), (5,3), (5,2)]
如何提取元组的第一个值,即 5。
我知道你会用 head lis 来获取头部,但这会返回 (5,6),我想要 5。
更大的图景是能够获得一个元组列表的头部,并将其与另一个元组列表中的每个值进行比较,看看它是否匹配。
【问题讨论】:
所以我有一个元组列表
lis = [(5,6), (5,3), (5,2)]
如何提取元组的第一个值,即 5。
我知道你会用 head lis 来获取头部,但这会返回 (5,6),我想要 5。
更大的图景是能够获得一个元组列表的头部,并将其与另一个元组列表中的每个值进行比较,看看它是否匹配。
【问题讨论】:
这很简单,只需使用fst 函数从元组中提取第一个值:
λ> let lis = [(5,6), (5,3), (5,2)]
λ> fst $ head lis
5
【讨论】:
如果您想在另一个表达式中使用lamba:
(\(x, _) -> x) (head lis)
或者如果你想要一个单独的功能:
first :: (a, b) -> a
first (x, _) = x
不过,有一个函数称为 fst。
【讨论】: