如何比较OCaml中的字符串



我看到了这一点,并尝试了一下utop。

我的代码只是:"a" < "b"

但有一个错误:错误:此表达式的类型为string,但应为int类型的表达式。

提示中的代码和错误

另一个代码是:

(*
Given a list of strings, check to see if it is ordered, i.e. whether earlier elements are less than or equal to later elements.
*)
let rec is_ordered (ls: string list): bool =
match ls with
| head::[] -> true
| head1::(tail1::tail2) -> ((head1 <= tail1) && is_ordered(tail1::tail2))
| _ -> false

同样的错误。

提前谢谢。

很可能您使用的是Jane Street的模块。Jane Street模块重新定义了多态比较运算符(如<(,以便它们只对int进行操作。

以下是最近的讨论:关于UTop中OCaml函数签名的问题

如果您想继续使用Jane Street模块,可以使用String.compare来比较字符串。

相关内容

  • 没有找到相关文章

最新更新