2012-02-16 16 views
1

我有我的老師提供的代碼。我應該通過從mergesort中找到什麼類型的f#推斷來解決它。當我嘗試發送到互動我得到一個錯誤。我問我的proffesor有什麼問題,他說這是由於課程網站上的格式錯誤造成的。我曾嘗試添加空格刪除你的名字空間,但每次我得到一個f#間距和合並排列

〜vs4489.fsx(8,14):錯誤FS0588:座以下這個「讓」是未完成。期待一個表達。

最後兩種方法。我怎樣才能解決這個問題?

下面是代碼

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#有顯著的空白,因此壓痕是至關重要的 – 2012-02-16 00:24:44

+2

只是好奇 - 你在哪裏拍攝目前正使用F#的語言大學課程? – 2012-02-16 13:13:37

回答

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)