我有一个函数,它需要4元组的类型列表,在函数中我需要引用函数的输入来做一些其他的东西,比如获取该元组的第一个元素或获取第一个元素的长度4元组 我的功能如下:
foo (a:_,b:_,c:_,d:_) = do something
在做一些事情我需要做一些比较,但我需要参考foo的输入,我不知道如何。 我喜欢这个
let input = (a:_,b:_,c:_,d:_) in foo input // generates error
任何人都可以帮助我吗?
答案 0 :(得分:4)
你可以写
foo args@(a:_,b:_,c:_,d:_) = if bar args then (a,c) else (b,d)
在第二种情况下,您会收到错误,因为通配符不能出现在绑定表达式的右侧