F# 元组模式匹配问题

发布于 2024-10-15 10:06:40 字数 238 浏览 6 评论 0原文

有没有一种方法可以在 F# 中进行模式匹配,以便检查双元素元组中的两个元素是否相等。我对 F# 非常陌生,对模式匹配的整个概念也很陌生。我在想一些类似的事情......

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

但我想那太简单了哈哈。有什么建议吗?或者有没有办法做到这一点?感谢您的帮助,你们非常有帮助!

Is there a way to pattern match in F# so that it will check to see if both elements in a two element tuples are equal. I'm incredibly new to F#, and also new to the whole concept of Pattern Matching in general. I was thinking something along the lines of...

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

But I guess that would be too easy hah. Any suggestions? Or is there even a way to do that? Thanks for your help, you guys are incredibly helpful!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一桥轻雨一伞开 2024-10-22 10:06:40

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

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

但是当然,这取决于上下文 - if 可能适合小函数)

Brian's answer is correct, but since you also asked about other ways I'll add an alternative - I don't usually use match to work with tuples because simple decomposition will always succeed (unless you use some complicated patterns or when). When writing a function, I would likely write:

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

(But of course, it depends on the context - the if is probably good for small functions)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文