我有一个这样的列表:["0","1"] - 我想创建一个如下所示的新列表:["00", "01",“10”,“11”] - 也就是说我想创建原始字符串的扩展,添加“0”或“1”。
我尝试了以下代码,但它不起作用:
let extendedPartialSolutions partialSolutions = let rec aux extendedSolutions originalList =
match originalList with
[] -> extendedSolutions
| x::tail ->
aux x^"1"::x^"0"::extendedSolutions tail
in aux [] partialSolutions
编译器发出以下错误:
# let extendedPartialSolutions partialSolutions = let rec aux extendedSolutions originalList =
# match originalList with
# [] -> extendedSolutions
# | x::tail ->
# aux x^"1"::x^"0"::extendedSolutions tail
# in aux [] partialSolutions;;
File "", line 5, characters 15-20:
Error: This expression has type 'a list -> 'a
but an expression was expected of type string
如何修复它?
最佳答案
我找到了解决办法!它是:
let extendSolutions originalList =
List.flatten (List.map (fun x -> [x^"0";x^"1"]) originalList);;
关于string - 如何将另一个字符串列表的元素追加到 Ocaml 中新创建的字符串列表中,并分别用 "1"和 "0"扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57505628/