2011-02-02 6 views
2

F#でパターンマッチングを行う方法があるので、2要素タプルの両方の要素が等しいかどうかをチェックします。私はF#を信じられないほど新しいし、一般的にパターン・マッチングの概念全体にも新しいものです。私は何かを考えていた...F#タプルパターンマッチング質問

let rec funct = function 
    |(xs, xs) -> 0 
    etc. etc. etc. 

しかし、私はあまりにも簡単かもしれないと思う。助言がありますか?それともそれを行う方法さえあるのですか?助けてくれてありがとう、みんな信じられないくらい役に立つ!

答えて

2

ブライアンの答えは正しいですが、あなたはまた、他の方法について尋ねられたので、私は選択肢を追加します - 簡単なので、私は通常タプルで動作するようにmatchを使用していません複雑なパターン(when)を使用しない限り、分解は常に成功します。機能を書くとき、私はそう書くでしょう:

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

(しかし、もちろん、それは文脈に依存 - ifはおそらく、小さな関数のために良いです)