我试图在ocaml中找到列表的长度.
我先调用一个函数调用
Run Code Online (Sandbox Code Playgroud)> let get_list_length e in > print_list_length out x
get_list_length中的实际代码是我感到困惑的地方."e"是一个"命令"列表,我想找到所有"命令"的长度.
let get_list_length(e:values):unit =
match e with
let x = list.length(e);;
所以我的e是"命令"列表,它是我的语法文件中指定的一堆值.我很困惑如何得到列表的长度,因为e是一个值列表,我想要该列表的长度.
任何帮助,将不胜感激.
获取列表的长度很简单:
List.length my_list
Run Code Online (Sandbox Code Playgroud)
您的get_list_length功能可以简单如下:
let get_list_length e = List.length e
Run Code Online (Sandbox Code Playgroud)
或更简单地说:
let get_list_length = List.length
Run Code Online (Sandbox Code Playgroud)
正如您当前定义的那样,get_list_length返回类型unit以便您不会从中获得任何有用的信息.您也使用不正确的匹配,它通常像这样使用:
match e with something -> do something
| something_else -> do something_else
Run Code Online (Sandbox Code Playgroud)