列表的哈斯克尔元

elem (1,2,3) [(1,2,3)] -> works (true) elem (1,2,_) [(1,2,3)] -> doesnt work (want it return true as well)

什么即时试图做的是,如果元组的前两个元素相匹配的音乐列表返回true。

--------------解决方案-------------

可以使用前奏函数any找出在列表的至少一种元素是否满足给定的条件(该条件在这种情况下是“它的模式匹配, (1, 2, _)

对于这种情况的一个例子是:

any (\x -> case x of (1,2,_) -> True; _ -> False) [(1,2,3),(4,5,6)]

或者多一点简洁:

or [True | (1,2,x) <- [(1,2,3),(4,5,6)]]

您可以使用elem如果三元转换为对第一:

elem (1,2) $ map (\(a,b,_) -> (a,b)) [(1,2,3),(4,5,6)]

分类:名单 时间:2015-03-14 人气:0
本文关键词: 哈斯克尔,列表
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.968 (s). 10 q(s)