Functional programming 要在OCaml中列出的列表选项

Functional programming 要在OCaml中列出的列表选项,functional-programming,ocaml,Functional Programming,Ocaml,我有一个返回(char list)列表选项的函数,我正在尝试获取列表的大小: let c = recherche m ledico in match c with | None -> Printf.printf "Non." | Some [] -> Printf.printf "Oui." | _ -> let n = List.length c in (...) recherche是返回(字符列表)列表选项的函数,它可以返回None

我有一个返回(char list)列表选项的函数,我正在尝试获取列表的大小:

let c = recherche m ledico in
  match c with
    | None -> Printf.printf "Non."
    | Some [] -> Printf.printf "Oui."
    | _ ->
      let n = List.length c in
(...)
recherche
是返回
(字符列表)列表选项的函数
,它可以返回
None
Some[]
Some[[…];…;[…]
。我怎么找到这个长度?我看到了解决方案,但不起作用:

Error: The function applied to this argument has type 'a list -> 'a list
This argument cannot be applied with label ~f

如何获得列表选项的大小?

您只需为列表命名即可

| Some l -> let n = List.length l in ...

你只需要给列表一个名字

| Some l -> let n = List.length l in ...

你只需要给列表一个名字

| Some l -> let n = List.length l in ...

你只需要给列表一个名字

| Some l -> let n = List.length l in ...

要将函数应用于
'a选项
,您只需要一个作用于
'a
类型的值的函数,以及一个在输入为
时返回的值。核心库中有一个名为
value\u map
的函数可以执行此操作。基本实现非常简单:

let value_map x default f =
    match x with
    | None -> default
    | Some sx -> f sx

在您的情况下,您需要选择一个默认值。要应用的函数是
List.length
要将函数应用于
'a选项
,您只需要一个作用于
'a
类型的值的函数,以及一个在输入为
时要返回的值。核心库中有一个名为
value\u map
的函数可以执行此操作。基本实现非常简单:

let value_map x default f =
    match x with
    | None -> default
    | Some sx -> f sx

在您的情况下,您需要选择一个默认值。要应用的函数是
List.length
要将函数应用于
'a选项
,您只需要一个作用于
'a
类型的值的函数,以及一个在输入为
时要返回的值。核心库中有一个名为
value\u map
的函数可以执行此操作。基本实现非常简单:

let value_map x default f =
    match x with
    | None -> default
    | Some sx -> f sx

在您的情况下,您需要选择一个默认值。要应用的函数是
List.length
要将函数应用于
'a选项
,您只需要一个作用于
'a
类型的值的函数,以及一个在输入为
时要返回的值。核心库中有一个名为
value\u map
的函数可以执行此操作。基本实现非常简单:

let value_map x default f =
    match x with
    | None -> default
    | Some sx -> f sx
在您的情况下,您需要选择一个默认值。要应用的函数是
List.length