Frage

Im Moment bin ich mit Haddock nur, aber nach ein paar wirklich interessante Beispiele zu sehen (zB dieser Kern ) den gebildeten Haskell, ich habe es bei dem Versuch, in einem Projekt heraus interessiert bin.

Die Fragen, die ich habe, sind:

  • Was schreiben Sie da Haddock Kommentare und was Sie schreiben in dem gebildeten Teil?

  • Wie skalieren Sie lesen und Programmierung, um mehrere Dateien? Kann mir jemand Punkt zu einem Beispiel, wo Literarische Programmierung in einem Paket mit mehreren Modulen verwendet wird? Was ist Ihre Erfahrung in größeren Paketen lesen und Programmierung zu verwenden?

  • Welcher Geschmack (Abschlag, Latex, ...) der gebildeten Haskell bevorzugt?

  • Warum programmieren Sie in belesen Haskell oder Plain-Vanilla-Haskell? Programmieren Sie in beiden Stilen und wenn ja, warum?

  • Bevorzugen Sie Block-Stil (\begin{code}) oder Vogel-Stil (>)? Warum?

War es hilfreich?

Lösung

Ich habe eine Menge zu schreiben lesen und Programme .

Was schreiben Sie da Haddock Kommentare und was Sie schreiben in dem gebildeten Teil?

Die externe API-Dokumentation geht in die Haddock Kommentare. Alles geht sonst in den gebildeten Teil. "Alles andere" könnten gehören:

  • Interne Invarianten von Datenstrukturen
  • Warum Sie tun Dinge auf diese Art und Weise
  • Was die Design des Codes ist
  • Warum dieses Design wurde gewählt, was andere Entwürfe wurden ausprobiert und für unzureichend befunden

Wie skalieren Sie lesen und Programmierung, um mehrere Dateien?

Auf die gleiche Weise Sie eine große LaTeX-Dokument, um mehrere Dateien skalieren. Eine Datei pro Modul, dann eine riesige Datei, dass \includes sie alle

Kann mir jemand Punkt mich an einem Beispiel, wo Literarische Programmierung in einem Paket mit mehreren Modulen verwendet wird?

Es ist nicht Haskell, aber die Schnell C-- Compiler ist ein großes Funktionsprogramm das ist geschrieben mit Literarischer Programmierung.

Was ist Ihre Erfahrung mit Literarischer Programmierung in größeren Paketen?

Literate Programmierung funktioniert sehr gut für die Dokumentation heikel, schwierig oder komplexe Module. Bei den meisten einfachen Modulen ist die externe API Dokumentation (z.B. Haddock) genug. Und kein gebildetes Programm wird wirklich Ihr das große Bild eines Designs geben, die mehr als ein Dutzend Module enthält. Für, dass Sie andere Werkzeuge und Techniken benötigen.

Welcher Geschmack (Abschlag, Latex, ...) der gebildeten Haskell bevorzugt?

Wenn Sie machen eine so große Investition, würde ich auf jeden Fall mit LaTeX gehe nur wegen der Mathe-Fähigkeit und die im Allgemeinen größere Leistung des Werkzeugs.

Warum programmieren Sie in belesen Haskell oder Plain-Vanilla-Haskell? Programmieren Sie in beiden Stilen und wenn ja, warum?

Meine Haskell Codes sind fast immer alle Plain-Vanilla, aus zwei Gründen:

  • ich Arbeit mit älteren Menschen, die mehr Haskell Erfahrung haben, und sie haben lesen und schreiben Haskell verlassen. Nur die ältesten Module in ihrem System keine Chance haben .lhs zu sein.

  • Für Haskell, belesen Programmierung ist eine Art überflüssig. Einer der großen Vorteile eines belesen-Programmier-Tool ist, dass Sie von allen Zwängen befreit werden, dass der Compiler oder Sprachdefinition in der Größenordnung stellen könnte, in dem Code angezeigt wird. Aber Haskell hat fast keine solche Einschränkungen: Es gibt keine Definition vor dem Gebrauch und für eine typische Funktionsdefinition Ich habe die Wahl der let-Bindung oder where bindenden Hilfsnamen (oder beides). Literate Programmierung war nie nur um Phantasie Kommentare und mit „lesen und schreiben“ Haskell, dass die über alles, was Sie bekommen. Es lohnt sich nicht die Mühe.

Bevorzugen Sie Block-Stil (\ begin {Code}) oder Vogel-Stil (>)? Warum?

Ich ziehe stark Block-Stil:

  • Es ist grob kompatibel mit jedem anderen belesen-Programmier-Tool auf dem Planeten. (Bird Tracks sind einzigartig für Haskell.)

  • Mein Redakteur meistert besser mit Block-Stil.

Andere Tipps

Wenn Sie Aktienprogramme im Internet beabsichtigen, habe ich eine Kombination des gebildeten Haskell in Abschlag Stil mit Mathjax fand eine großartige Kombination zu sein. Das Programm „Pandoc“ ist ernst brillant für die Aufnahme dieser „Abschlags + lhs“ in ein beliebiges Format Sie wünschen, einschließlich PDF oder HTML. Wenn Sie Pandoc zu Ausgabe in HTML sagen, können Sie die -mathjax (oder andere ähnliche Flaggen wenn Sie bevorzugen) Ihre Latex mathematischen Formeln haben machen.

Wenn Sie diesen Stil, ich Vogelart finden vorzuziehen zu sein, weil es einfach besser lesbar zu mir und scheint mit dem Abschlags-Stil besser zu passen zusammen.

Die große Sache über Pandoc mit Abschlag ist, dass Sie Zitate, um Ihren Code hinzufügen können, mathematischen Formeln und haben ein wirklich portables Format. Sie können etwas bauen, die eine wissenschaftliche Forschung Papier ähnelt, aber ausführbar und kann auch auf Blogs / Wikis / Webseiten veröffentlicht werden.

Um einen alternativen Punkt zu Norman geben, wo er sagt, dass Literarische Programmierung ist für klarere Code Anordnung nützlich, könnte man argumentieren, dass Haskell ausdrucksstark genug ist, dass die Probleme, die Sie mit dem Code lösen tatsächlich interessant sind und von wirklich profitieren wird umgeben mit erläuterndem Text. Denken Sie an eine mathematische Forschung Papier. Gute Papiere in der reinen Mathematik haben vielen Text die Motivation oder höhere Ebene Interpretationen das, was die mathematischen Notation Mittel zu erklären. In einem Papier über die Gleichungen Navier-Stokes, zum Beispiel, wäre es super nützlich sein, um die Schreibweise der Gleichungen zu umgeben, mit Text zu erklären, wie es zu Newtons Impulserhaltung bezieht.

Insgesamt habe ich mit gutem Erfolg hatte, und empfehlen, + mit Abschlag lhs Stil, Dollarzeichen einbetten Latex mathematischer Formeln, die Vogelart und pandoc. Ich würde empfehlen, Programme zu schreiben, als ob sie Forschungsarbeiten waren und behandeln Haskell selbst als würden Sie mathematische Ausdrücke in einem Forschungspapier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top