Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#元组模式匹配问题_F#_Design Patterns_Matching_Tuples - Fatal编程技术网

F#元组模式匹配问题

F#元组模式匹配问题,f#,design-patterns,matching,tuples,F#,Design Patterns,Matching,Tuples,有没有办法在F#中进行模式匹配,以便检查两个元素元组中的两个元素是否相等。我对F#非常陌生,对模式匹配的整体概念也非常陌生。我在想一些关于 let rec funct = function |(xs, xs) -> 0 etc. etc. etc. 但我想那太容易了哈。有什么建议吗?或者有没有办法做到这一点?谢谢你们的帮助,你们真是帮了大忙 match e with | x,y when x = y -> ... ... Brian的回答是正确的,但由于

有没有办法在F#中进行模式匹配,以便检查两个元素元组中的两个元素是否相等。我对F#非常陌生,对模式匹配的整体概念也非常陌生。我在想一些关于

let rec funct = function
    |(xs, xs) -> 0
    etc. etc. etc.
但我想那太容易了哈。有什么建议吗?或者有没有办法做到这一点?谢谢你们的帮助,你们真是帮了大忙

match e with    
| x,y when x = y -> ...
...


Brian的回答是正确的,但由于您也询问了其他方法,我将添加一个替代方法-我通常不使用
match
来处理元组,因为简单的分解总是会成功的(除非您使用一些复杂的模式或
)。在编写函数时,我可能会这样写:

let funct (x, y) = 
  if x = y then ...
  else ...

(当然,这取决于上下文-如果
可能适合小功能)

啊,when关键字…谢谢!