7
我剛安裝了最新版本的F#,並打開了一箇舊的解決方案,看看它會告訴我什麼。F#2.0命名空間警告
這是一個多文件解決方案,其中第一個文件包括列表模塊上的一些「擴展功能」:
module List =
///Given list of 'rows', returns list of 'columns'
let rec transpose lst =
match lst with
| (_::_)::_ -> List.map List.hd lst :: transpose (List.map List.tl lst)
| _ -> []
編譯器不再喜歡這一點,並說:
文件在庫或多文件應用程序中,必須以名稱空間或模塊聲明開始,例如'命名空間SomeNamespace.SubNamespace' 或 '模塊SomeNamespace.SomeModule'
但是,如果我這樣做:
module Foo.List =
它說:
模塊縮寫必須是一個簡單的名字,不是路徑
我在這裏錯過了什麼?這個'特殊'案例的解決方案是什麼,我在擴展來自其他地方的模塊?
hd - > head and tl - > tail?這些人不關心代碼高爾夫嗎? :) – Benjol
:) - 將它們添加回來,因爲您已經將功能添加到List模塊中... –
答案的另一半很混亂,如果您沒有命名空間,只有一個模塊,您肯定不會在模塊聲明之後放置一個=。但是如果你有一個命名空間,你需要一個= – Benjol