我有这个代码由我的导师提供.我应该通过查找mergesort中的f#类型来修复它.当我尝试发送到交互式时,我得到一个错误.我问我的proffesor出了什么问题,他说这是由于课堂网站上的格式错误造成的.我已经尝试添加空格删除你命名的空格,但每次我得到一个
~vs4489.fsx(8,14):错误FS0588:阻止此'let'未完成.期待一个表达.
关于最后两种方法.我怎样才能解决这个问题?
这是代码
let rec merge = function
| ([], ys) -> ys
| (xs, []) -> xs
| (x::xs, y::ys) -> if x < y then x :: merge (xs, y::ys)
else y :: merge (x::xs, ys)
let rec split = function
| [] -> ([], [])
| [a] -> ([a], [])
| a::b::cs -> let (M,N) = split cs
(a::M, b::N)
let rec mergesort = function
| [] -> []
| L -> let (M, N) = split L
merge (mergesort M, mergesort N)
Run Code Online (Sandbox Code Playgroud)
我只能猜测正确的缩进是什么,但......
let rec merge = function
| ([], ys) -> ys
| (xs, []) -> xs
| (x::xs, y::ys) -> if x < y then x :: merge (xs, y::ys)
else y :: merge (x::xs, ys)
let rec split = function
| [] -> ([], [])
| [a] -> ([a], [])
| a::b::cs -> let (M,N) = split cs
(a::M, b::N)
let rec mergesort = function
| [] -> []
| L -> let (M, N) = split L
merge (mergesort M, mergesort N)
Run Code Online (Sandbox Code Playgroud)