Wie strukturiert man eine in einer funktionalen Sprache geschriebene Anwendung?

8

Wie wird Code in FP-Anwendungen normalerweise organisiert? In welche Richtung trennen Sie Dateien, Module, Verzeichnisse, etc.

    
fig 02.05.2010, 16:47
quelle

1 Antwort

9
  

Wie strukturiert man eine in einer funktionalen Sprache geschriebene Anwendung?

Nicht anders als bei jeder anderen Art von Anwendung:

  • Jedes Modul verbirgt ein Geheimnis.

  • Eine Designentscheidung, die sich wahrscheinlich ändert, sollte in einem Modul gekapselt sein.

  • Ein Modul könnte einen einzelnen Haupttyp, einige Hilfstypen und eine ganze Reihe verwandter Operationen exportieren.

  • Modul Kohäsion und Kopplung sind immer noch so wichtig wie Yourdon und Constantine sagten sie waren in den 1970er Jahren - obwohl in einer funktionalen Sprache müssen Sie selten über "sequentielle" Formen der Kohäsion und Kopplung sorgen.

  • Viele funktionale Sprachen erfordern ein Modul pro Datei, aber die ML-Dialekte bieten sehr viel mehr Flexibilität. Die überwältigende Praxis besteht jedoch darin, ein Modul und seine Schnittstelle in separate Dateien zu setzen. Objective Caml schreibt diese Konvention in ihren Compiler ein.

Kurz gesagt, ist es immer noch so, dass Repräsentation die Essenz der Programmierung ist (Fred Brooks), und wie in jeder anderen großen Anwendung sollten Ihre Module so organisiert sein, dass Repräsentation nicht unnötig ausgesetzt wird.

>

Die eine Sache, die in einer funktionalen Sprache ein wenig anders ist, besteht darin, dass Sie ein Modul bereitstellen, das ein Ausführungsmuster kapselt, das in einer Funktion höherer Ordnung enthalten ist. Zum Beispiel schrieb ich ein Modul basierend auf Bubble Search ; Mein Code nimmt irgendeinen Greedy-Algorithmus und wandelt ihn automatisch in einen blasensuchenden Algorithmus um. Aber ein Modul wie dieses, das sich ausschließlich mit Code befasst und keine echte Datenstruktur hat, ist ziemlich selten.

    
Norman Ramsey 02.05.2010, 17:23
quelle