f# - F# 中 let 绑定(bind)中的模式匹配

标签 f# pattern-matching

我想做:

let Some(x) = bar in ...

但我不能这样做,除非我这样做
let Some(x) as idontcare = bar in ...

有没有更好的说法“我不在乎整个模式,只匹配内部”

(我会使用 _ 但这不会解析,所以我使用 __ 代替)

是的,我知道这是部分的,我只是在做一个快速脚本。

编辑:这也只是一个内置 sum 类型的例子,所以 Option.get不是通用的;另外,我希望它像 Haskell let-bindings 一样内联。

最佳答案

let Some(x) = bar

定义了一个新函数 Some ,隐藏现有的构造函数。相反,你想要:
let (Some(x)) = bar

关于f# - F# 中 let 绑定(bind)中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368436/

相关文章:

F# 向 Collections.Map 添加新项目?

visual-studio - 编辑 .fsproj 文件以使用 --standalone 编译器设置

html - 清理序列化 DOM 的安全正则表达式?

永远不会匹配与元组规则匹配的 F# 模式

java - 创建一个模式正则表达式以从 JAVA 中的字符串中提取小时和分钟

.net - 如果随机生成的输入没有用,我如何重新尝试基于属性的测试?

f# - 是否可以在 F# 类型提供程序中使用数组作为静态参数?

.net - 运行 Excel DNA FSharp 注册示例时出现 DnaMarshalException

scala - 具有类型成员的 Case 对象的模式匹配

bash - 动态提取 bash 中字符串列表中每个字符串唯一的模式