尝试创建一个函数将字符串列表转换为 1 个字符串并在单词之间添加空格
Trying to create a function to transform list of strings into 1 string and add spaces between words
let rec createSentence(list) = (
match list with
case [] -> failwith "błędna lista"
| case [_] -> List.hd list
| case [_,_] -> List.hd list ^ createSentence(List.tl list)
| case _ -> List.hd list ^ " " ^ createSentence(List.tl list);;
);;
Ocaml returns 语法错误:应为运算符。我不知道如何推进这个
OCaml 中的模式匹配语法如下,
match <expr> with
| <pattern1> -> <action1>
| <pattern2> -> <action2>
...
例如,
match ["hello"; "world"] with
| [word1; word2] -> print_endline (word1 ^ word2)
| _ -> assert false
此外,请注意 OCaml 中的列表元素是用 ;
分隔的
我建议阅读 Introduction to OCaml or some OCaml book
更新:为了更清楚,OCaml 中没有 case
关键字,你不应该在模式前写 case
,即,而不是 | case []
,只是写 | []
.
let rec createSentence(list) = (
match list with
case [] -> failwith "błędna lista"
| case [_] -> List.hd list
| case [_,_] -> List.hd list ^ createSentence(List.tl list)
| case _ -> List.hd list ^ " " ^ createSentence(List.tl list);;
);;
Ocaml returns 语法错误:应为运算符。我不知道如何推进这个
OCaml 中的模式匹配语法如下,
match <expr> with
| <pattern1> -> <action1>
| <pattern2> -> <action2>
...
例如,
match ["hello"; "world"] with
| [word1; word2] -> print_endline (word1 ^ word2)
| _ -> assert false
此外,请注意 OCaml 中的列表元素是用 ;
我建议阅读 Introduction to OCaml or some OCaml book
更新:为了更清楚,OCaml 中没有 case
关键字,你不应该在模式前写 case
,即,而不是 | case []
,只是写 | []
.