F#モジュールにモンキーパッチを適用できますか?

extension-methods f# module monkeypatching
F#モジュールにモンキーパッチを適用できますか?

簡単な質問です。 あなたが機能を追加したい場合、それを読んだだけです リストモジュールでは、その関数を使用して新しいリストモジュールを定義できます。

module List
  let foo = // ...

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

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

  2  0


ベストアンサー

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

open ThatNamespace

私はすべてのメンバーの連合を見ます。

4


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

module List =
    let doSomething lst v = lst |> List.nth v

3


タイトルとURLをコピーしました