Ocaml:unicode 字符串长度

Ocaml: unicode string length

在 OCaml 中,如何计算可能具有 unicode 编码的字符串的长度?举个例子,这是我的问题:

utop # "\u{02227}";;
- : string = "∧"
utop # Caml.String.length "\u{02227}";;
- : int = 3
utop # Base.String.length "\u{02227}";;
- : int = 3

我想得到显而易见的答案:1.

如果要计算扩展字素簇(又名图形字符)的数量,可以使用uuseg。例如

let len = Uuseg_string.fold_utf_8 `Grapheme_cluster (fun x _ -> x + 1) 0
let n = len "∧";;

returns

val n : int = 1