0
비어 있지 않은 목록의 List.max_elt
의 결과를 언 랩핑하려고 했으므로 항상 존재해야합니다. 따라서 Option.value_exn
이 올바른 도구라고 생각했습니다. 하지만 이상한 오류로 실패합니다 :Option.value_exn을 사용하는 동안 오류가 발생했습니다.
# List.range 0 10 |> List.max_elt ~cmp:compare;;
- : int option = Some 9
# Option.value_exn (Some 9);;
- : int = 9
# List.range 0 10 |> List.max_elt ~cmp:compare |> Option.value_exn;;
Error: This expression has type
?here:Lexing.position ->
?error:Base.Error.t -> ?message:string -> 'a Base.option -> 'a
but an expression was expected of type int option -> 'b
아무도 나에게이 오류를 설명 할 수 있습니까?
OCaml 4.05.0과 최신 코어 라이브러리를 사용하고 있습니다.