2

簡単な質問です。List モジュールなどに関数を追加したい場合は、その関数を使用して新しい List モジュールを定義できることを読んだところです。

module List
  let foo = // ...

fooこれはメインの List モジュールに追加する効果がありますか、それとも新しい を明示的に開く必要がありますListか? 前者は Ruby の「モンキー パッチ」のようです。後者は拡張メソッドに似ていると思います。

(私はこれを試してみたいと思いますが、コンパイラの近くにはいません。)

4

2 に答える 2

4

名前空間によく似ています。彼らは「オープン」です。つまり、名前空間に型を提供する2つのファイルまたは2つのアセンブリがあり、それらのファイルを使用するか、それらのアセンブリを参照して、

open ThatNamespace

すべてのメンバーの組合が見えます。

于 2010-09-17T21:48:20.423 に答える
3

これは、拡張メソッドと同様の方法で機能します。

module List =
    let doSomething lst v = lst |> List.nth v
于 2010-09-17T20:12:35.177 に答える