【发布时间】:2017-04-11 02:50:58
【问题描述】:
我有以下元组列表(即注意; 和,):
let nodes = [0, 1, 394; 0, 2, 4; 1, 3, 50; 1, 2, 5; 2, 3, 600]
我想找到列表中第一个元素 = 0 的所有元组,所以我进行以下模式匹配:
match nodes with
| [_; 0, a, b; _] | [_; 0, a, b] | [0, a, b; _] -> doStuff a b //a tuple of the form (0, _, _) was found in the list
| _ -> doOtherStuff //no matches found
有几个我无法解决的问题:
- 我只得到一个匹配元组的
a&b,任何其他匹配都被忽略 - 我不得不寻找三个案例(列表中间的元组、列表的开头和结尾),这在 IMO 中非常冗长
有什么办法可以解决这些问题? (有没有办法获得多个匹配项,并且无论元组在列表中的位置如何都可以匹配?)
【问题讨论】:
标签: f# functional-programming pattern-matching