F # Tuple Pattern Matching Question - PullRequest
       15

F # Tuple Pattern Matching Question

2 голосов
/ 03 февраля 2011

Есть ли способ сопоставления с образцом в F #, чтобы он проверял, равны ли оба элемента в кортежах из двух элементов. Я невероятно новичок в F #, а также новичок во всей концепции сопоставления с образцами в целом. Я думал о чем-то вроде ...

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

Но я думаю, это было бы слишком просто, ха. Какие-либо предложения? Или есть ли способ сделать это? Спасибо за вашу помощь, ребята, вы невероятно полезны!

Ответы [ 2 ]

5 голосов
/ 03 февраля 2011
2 голосов
/ 03 февраля 2011

Ответ Брайана верен, но поскольку вы также спросили о других способах, я добавлю альтернативу - я обычно не использую match для работы с кортежами, потому что простая декомпозиция всегда будет успешной (если вы не используете некоторые сложные шаблоны или when). При написании функции я бы, скорее всего, написал:

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

(но, конечно, это зависит от контекста - if, вероятно, подходит для небольших функций)

...