我看到了这一点,并尝试了一下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
来比较字符串。