Split F# Module in mehreren Dateien
Ist es möglich, die Aufteilung einer F# - Modul in mehreren Dateien?
Laut Buch habe ich es, aber das Buch ist wohl veraltet
(Grundlagen von F#)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, die Aufteilung einer F# - Modul in mehreren Dateien?
Laut Buch habe ich es, aber das Buch ist wohl veraltet
(Grundlagen von F#)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenbar nicht:
Update: der Fehler hat sich verändert in F# 4.0 ist es nun:
wo
Module
ist der vollständig qualifizierte name der assembly, einschließlich der namespace-Teil.Den Typ-Erweiterungen sind cool, und hoffentlich werden Sie zulassen, Kreuz-Datei während Sie weiterhin die intrinsische. Wenn Sie eine Erweiterung in der gleichen Datei, kompiliert er auf eine Klasse, und die Erweiterung hat Zugriff auf private member und so weiter. Wenn Sie es in einer anderen Datei, ist es nur eine "optionale" Erweiterung, wie C# statische erweiterungsmethoden. (Auch wenn der F# - specs anders sagen.)
Ich würde mich Wundern, wenn diese nicht angesprochen wird irgendwann, wenn auch nur für die designer-Unterstützung. Wenn Eigenwert Erweiterungen könnte überall sein in der Versammlung, das wäre alles ziemlich glatt.
Weitere option, die möglicherweise nicht, was Sie wollen, ist zu schaffen, einen Typ und einen Modul rufen Sie das Modul mit dem gleichen Namen, und fügen Sie dann die ModuleSuffix Flagge, um die es:
Dies ist bei der F# - Bibliotheken, so können Sie eine Liste Typ, oder was auch immer, zusammen mit Tonnen von Helfer-Zeug in einem Modul.
Wie Kurt sagt, Sie können hinzufügen, Erweiterung Methoden um Arten, und damit
dann
Da es sich um eine Klasse und nicht ein Modul, verlieren Sie die Fähigkeit zu tun, 'Tagebau' (aber die Fähigkeit erlangen, überlastung); also dies kann oder kann nicht eine akzeptable alternative für Sie je nach genau das, was du tust.
Ich manchmal split ein Typ über mehrere Plätze, etwa so:
denen Module Foo und Bar werden in verschiedenen Dateien.
Auf einem meiner Projekte war das Ziel des Datei-Operationen
Cp
undRm
um separate Module, erfordern jedoch keine Benutzer zum öffnen von zwei namespaces für beide Aufgaben.Hier sind meine Module:
ist und das andere: