string - 如何将另一个字符串列表的元素追加到 Ocaml 中新创建的字符串列表中,并分别用 "1"和 "0"扩展?

标签 string list append ocaml

我有一个这样的列表:["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/

相关文章:

比较两个字符串并删除相同的字母

javascript - 如何用字符串替换数字中的小数?

javascript - 将 HTML 字符串 append 到 Iframe 中导致语法错误,正确的方法是什么?

c - C 中空格等于 '\0' 吗?我怎样才能避免混淆它们?

c# - 如何在 List<string> 项中搜索

c# - 如何逻辑和(^,逻辑连词)字符串列表-C#

python - 列表理解中的嵌套循环

python - 在Python列表中实现升序排序

jquery - append 到表时无法读取 null 的属性 'childNodes'

javascript - JS,如何在FormData中追加数组?