F#の議論の順序がどうなるように見えるのはなぜですか? C#(同じコンパイルモデルを使用する)では問題ありません。私はこのしようとすると:F#コマンドラインファイルの順序?
# main.fs
module Main
let main = Printer.print_repeatedly 5 "hello, world"
# printer.fs
module Printer
let print_repeatedly n str = for x in 1..n do printfn "%s" str
を私はprinter.fsの前main.fsで(MicrosoftのとMonoの両方)コンパイラを実行し、私はエラーを取得する:
main.fs(4,12): error FS0039: The namespace or module 'Printer' is not defined
私はprinter.fsを行う場合main.fsの前にコマンドラインで、それはいいです。コンパイラがF#にこれを必要とする理由はありますか?
大きなプロジェクトのクリプトナイトである依存性管理が大幅に容易になることは言うまでもありません。 – Daniel
私はC++を多く使っています。私はちょうどF#がC#型スタイルのコンパイルモデルにほとんど従うように見えることを奇妙に感じました。 –
@Jonathan - 私は、F#とC#が共通のコンパイルモデルを共有する程度はどちらもCLIによって縛られていると思います。 C#は暗黙のインターフェイスの実装をサポートしています。これは推奨される「デフォルト」です.F#は明示的なインターフェイスの実装のみをサポートしています。 F#は、C#が実行している間はpublic static readonlyフィールドをサポートしていません。 F#では、C#が動作している間はオーバーライドされたメンバのシーリングをサポートしていません。 –