Der größte Teil der Haskell-Syntax hat Schönheit der Reinheit. Aber die Datensatzsyntax sieht hässlich aus. Es ist unangenehm. Es fühlt sich wie eine Mischung mit C an. Es erfordert Komma und Klammern. Haskell hat eine tabellenbasierte, linienbasierte Trennung. Es sieht also zu ausführlich aus als ursprünglich erforderlich. Warum ist es so gestaltet?
9
Antworten:
Während ich nicht im Designkomitee war, bin ich der Meinung, dass die Datensatzsyntax so gestaltet wurde, dass sie mit der Listensyntax übereinstimmt. Die Modul-Exportsyntax verwendet ebenfalls Kommas. Der einzige wirkliche Ort, an dem das Layout verwendet wird, sind Deklarationen der obersten Ebene, wobei Klauseln und Do-Notation.
Darüber hinaus gegeben
Schreiben
ohne die geschweiften Klammern würde mit dem Rest der Syntax kollidieren und Layout verwenden, wie
würde die Syntax ziemlich spröde machen. Fügen Sie ein "wo" an der falschen Stelle hinzu und Ihr Code bedeutet etwas völlig anderes.
Wenn Sie mit dem Stand der Aufzeichnungen in Haskell nicht zufrieden sind (und damit nicht allein wären), empfehle ich Ihnen, sich fclabels oder sogar ausgefeilte Typklassen - Hackery wie HList oder Grapefruit-Aufzeichnungen anzusehen (die beiden letzteren sind es nicht für schwache Nerven, aber auch wahnsinnig mächtig)
Mit fclabels können Sie schreiben (yay pointfree)
ebenso gut wie
obendrein ist es die eigentliche Existenzberechtigung, die Labels komponiert:
quelle
setL
veränderlich? Ohne IO? Es ist schwer zu verstehen ...