0
我无法找到一种方法来从用户给出的值中获取一个列表,我已经做了一个函数插入,它将一个值插入列表中,但我不知道如何从这里获取用户的值是我的代码包含4个示例A1,..,A4变量id喜欢从用户获得如何从用户输入的ocaml中获取值的列表
我无法找到一种方法来从用户给出的值中获取一个列表,我已经做了一个函数插入,它将一个值插入列表中,但我不知道如何从这里获取用户的值是我的代码包含4个示例A1,..,A4变量id喜欢从用户获得如何从用户输入的ocaml中获取值的列表
您可以使用read_line
从用户获取输入字符串,然后使用Str模块来分割它。
在utop
(请注意,用户输入 “1 2 3 4” THX到read_line()
)
#require "str";;
#read_line() |> Str.split (Str.regexp " +") |> List.map int_of_string;;
1 2 3 4
- : int list = [1; 2; 3; 4]
#
然后,可以使用更复杂的regexp分裂您的输入(以管理逗号,分号。 ..)
[与第二条评论有关],让我们假设你想将字符串'“(5,3,5)(4,3,5)”'分割为整数的三元组,你首先根据括号分割(下面的第一个分割例子),然后对于每个分组,根据您需要的元素进行分割:
Str.split (Str.regexp ")") s |>
List.map (fun x -> Str.split (Str.regexp "[(, ]+") x |>
List.map int_of_string) ;;
在这些元素不具有相同类型的情况下,您需要一个将列表作为输入并将其转换为元组的函数)。
要求不工作即时通讯工作在文本编辑器 –
我读了一点关于Str模块,但问题在这里是我怎么可以添加夫妇或三元组的每个例子(int * char * int)到列表 –
第一条评论:当你编译你的代码时,将它与pkg str(ocamlbuild -use-ocamlfind -pkg str yourappli.native)联系起来。 –