list - 使用foldBack 将字符列表转换为字符串

标签 list f# type-inference

对于作业,我正在寻找一种使用 List.foldBack 连接字符列表中的字符串的方法。

到目前为止我想到的:

let (.+) (x1:string) (x2:char) = x1 + System.Char.ToString(x2)
let implode xs:char list = List.foldBack(fun acc elem -> (.+) acc elem) xs ""

但这确实给了我以下错误消息:

This expression was expected to have type
    char list    
but here has type
    string    

我做错了什么,如何使用foldBack获得所需的结果

最佳答案

  1. 您的注释:char list适用于implode的返回类型,而不是xs 。如果您想要后者,则需要将其括起来( (xs:char list) )。
  2. List.foldBack需要采用带有签名 'a -> 'b -> 'b 的函数对于一些'a'b ,但是(.+)类型为string -> char -> string ,这不太匹配。

关于list - 使用foldBack 将字符列表转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442203/

相关文章:

c# - 索引超出范围抛出但索引并没有真正超出范围

java - 如何在 Java 中将 HashMap 转换为 List?

f# - 将列表上的函数应用于所有其他列表成员

f# - 以下 ocamlyacc 代码的 fsyacc 等价物是什么?

javascript - TypeScript null 检查不注意 array.length 检查

python - 列表列表更改意外地反射(reflect)在子列表中

python - 如何使用字典扫描列表中的部分外观?

f# - F#中的列表,数组和元组之间有什么区别?

rust - 多态类型的特殊类型

generics - Java 8 泛型方法...不适用于 Eclipse 中的参数