gpt4 book ai didi

pattern-matching - 模式匹配 OCaml 中的变量?

转载 作者:行者123 更新时间:2023-12-04 22:47:38 24 4
gpt4 key购买 nike

如果我做

let check n = function
| n -> true
| _ -> false

然后我得到 Warning 11: this match case is unused.
我明白为什么 , 自 n | n -> 真 实际上不是 check的论点.它基本上是由模式匹配创建的变量。

我的问题是 ,在这种情况下,我们有什么办法仍然使用模式匹配(而不是 if else)来强制执行此检查?

即,我想与参数 n 进行模式匹配.

最佳答案

您可以使用 when具有模式和 bool 条件:

let check n = function
| x when x = n -> true
| _ -> false

然而,这并不是很特别:它只是使用 if 的不同语法。 .

OCaml 不支持任何让您匹配变量值的“动态”模式——模式都是静态的。有一种研究语言叫 bondi它确实支持这样的动态模式。它与 OCaml 非常相似,因此如果您对此类功能感兴趣,您应该尝试一下。

关于pattern-matching - 模式匹配 OCaml 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17674549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com