質問
インストラクターから提供されたこのコードがあります。 MergesortからF#がどのタイプでインサードルしているかを見つけることで、修正することになっています。インタラクティブに送信しようとすると、エラーが発生します。私は私のProffesorに何が間違っているのか尋ね、彼はそれがクラスのウェブサイトでエラーのフォーマットによるものだと言った。私はあなたがそれに名前を付けるスペースを削除するスペースを追加しようとしましたが、私は得るたびに
〜VS4489.FSX(8,14):エラーFS0588:この「let」に続くブロックは未完成です。表現を期待してください。
最後の2つの方法で。どうすればこれを修正できますか?
これがコードです
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)
解決
私だけができます 推測してみて 正しいインデントとは何かについて、しかし…
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)
所属していません StackOverflow