2012-02-16 5 views
1

私はこのコードを教員が提供しています。 mergesortからどのような型が推測されているかを調べることで修正するはずです。インタラクティブに送信しようとすると、エラーが発生します。私は自分のproffesorに何が間違っているのかを尋ねました。そして、彼はそれがクラスのウェブサイト上でエラーをフォーマットすることによると言いました。エラーFS0588::ブロックはこの未完成である「せ」を以下の私は、あなたがそれに名前を付けるが、毎回、私はf#spacing and mergesort

〜vs4489.fsx(8,14)を取得スペースを削除するスペースを追加しようとしています。表現を期待する。

最後の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) 
+3

F#が大きな空白がありますので、インデントが興味があるだけ –

+2

重要です - あなたはどこの言語のためのF#を使用しての大学のコースを取っていますか? –

答えて

5

は私だけが正しいインデントが何であるかにようを推測できるコードですが、&hellip;

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)