f#为什么在尝试打印输出时出现错误?

时间:2018-11-04 03:00:46

标签: f#

我正在尝试打印以下_reverse_efficient函数的输出,并且在运行程序时未实现最后两行以打印输出,则该函数可以正常编译,但是当包括后两行以打印输出时然后我得到一个错误。请我需要帮助来解决此问题,以下是我的代码:

Console.Write("Enter your input: ")
let L = Console.ReadLine()

let rec _reverse_efficient L R=
   match L with
   | [] -> R
   |e::rest -> _reverse_efficient rest (e::R)

let Q = _reverse_efficient L []
printfn "Reverse list is: %A" Q

1 个答案:

答案 0 :(得分:0)

这是错误消息:

"typecheck: This expression was expected to have type
    ''a list'    
but here has type
    'string'    ".

在此行:

let Q = _reverse_efficient L []

基本上,它抱怨Lstring而不是list。 这是因为Console.ReadLine返回了string。您需要先以某种方式将输入转换为list,然后再调用_reverse_efficient