gpt4 book ai didi

ocaml - OCaml 4.01.0 中缺少 Option.default

转载 作者:行者123 更新时间:2023-12-04 00:25:28 26 4
gpt4 key购买 nike

我会使用 String.Set.choose some_set 从集合中选择一个字符串。

此方法返回 StringOption,但我想使用另一个方法返回第二个值,因此我想将 StringOption 转换为字符串。

根据 OCaml 文档 ( link here ),我知道 Option.default 应该这样做,但由于某些原因它丢失了(尽管 Option 与所有其余方法存在)。

有没有办法解决这个问题,或者让我的下一个方法接受 StringOption?

谢谢,

最佳答案

首先,这些不是 OCaml 文档 :-) 它是一个附加库。该特定存储库已过时(就像 Sourceforge 上的几乎所有其他内容一样),并且其选项模块已合并到 OCaml Batteries Included 中。作为 BatOption模块。 Batteries 也是一个附加库,但它是使用最广泛的库之一。

您可以编写自己的函数来从字符串选项中提取字符串,只要您决定在值实际为 None 时要执行的操作即可。在那种情况下,当然没有字符串。

一种可能性是在这种情况下引发异常。如果您确定总是有一个字符串,则永远不会发生异常。如果它确实发生了,你就知道你有问题了。因此,您可以编写如下函数:

let string_of_string_option so =
match so with
| None -> failwith "string_of_string_option, no string"
| Some str -> str

(此函数的工作方式类似于 List.hd;即,它是一个部分函数,​​当输入无效时会引发异常。)

你也可以编写你自己的default版本;这是一个非常简单的函数:

let my_default dflt vo =
match vo with
| None -> dflt
| Some v -> v

获取当前 OCaml 文档的一个好方法是浏览 ocaml.org .

另一个非常流行的附加库是 Jane Street Core,描述了 here .它有一个名为 Option.value 的函数,它类似于您要查找的 default 函数。 (事实上​​ ,这个名字对我来说似乎更好一点。)

关于ocaml - OCaml 4.01.0 中缺少 Option.default,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820325/

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