1
在以下ML提取(取自Effective ML talk)中,值綁定表達式中有一個模塊縮寫。是否有可能在F#中做同樣的事情? 我知道你可以做模塊縮寫,我特別感興趣,如果你可以這樣做「內聯」。是否可以在函數或值綁定中使用F#模塊縮寫?
let command =
let default_config = { exit_code = 0; message = None } in
let flags =
let module F = Command.Flag in
[ F.int "-r" (fun cfg v -> { cfg with exit_code = v });
F.string "-m" (fun cfg v -> { cfg with message = v });
]
...
感謝您快速回答Tomas!談話的建議是「打開幾個模塊」([本博客文章中的代碼](https://ocaml.janestreet.com/?q=node/85)),所以本地縮寫只是使模塊處於使用狀態本地明顯和簡潔。我想這個功能會是一個小增加,但是像你說的我們已經足夠了。 – bentayloruk
我看到這將如何是有用的 - 特別是如果你也可以對.NET命名空間進行相同的操作。有時候我只是在文件頂部有各種各樣的「開放式」聲明,而且我不知道是否需要它們。更好的工具也可以幫助解決這個問題(即自動刪除不必要的「open」聲明)。 –
是的,自動刪除未使用的'open'聲明將會很有用。這是我爲F#ReSharper插件建議的功能之一。不過,談話中的建議對我來說很有意義。如果仔細考慮打開哪些模塊以及在代碼中使用全名引用哪些模塊,可以增強代碼*可讀性*。 – bentayloruk