2014-02-25 7 views
5

Also graben herum und versuchen, herauszufinden, wie man ADTs in Clojure macht. Ich stoße auf den alten clojure-contrib, der gut und gut ist, außer dass er ersetzt wurde. Ok, keine große Sache, schau einfach durch den ersetzten clojure-contrib-Katalog zerbrochener Bibliotheken, aber für das Leben von mir kann ich nicht finden, wo defadt in den neuen clojure-contrib zerbrochenen Bibliotheken migriert wurde.Wohin ging defadt in neuen clojure contrib?

Wohin ist es dann gewandert?

Ich habe mich um http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries umgesehen, kann es aber nicht herausfinden.

Bonuspunkte, wenn Sie mir die Zeichenfolge an alembic.still/distill Hand geben können, um es für mich zu schließen.

+3

Dies sollte wahrscheinlich zu Programmers.SE –

+0

nicht wirklich geschrieben werden: es ist eine ziemlich spezifische Frage über eine Programmierbibliothek. Das ist definitiv ein Thema für SO. – mikera

Antwort

4

Der übliche Stil in Clojure besteht nicht darin, ADTs zu definieren. Ich würde die defadt Funktionalität als alt/veraltet betrachten.

Erwägen Sie stattdessen, Ihre Datenstrukturen mit regulären Clojure-Maps oder Vektoren zu definieren.

Alternativ können Sie auch deftype oder defrecord verwenden, wenn Sie einen benannten Typ verwenden möchten, der für den polymorphen Versand mit Protokollen verwendet werden kann. Dies ist eine flexible und schnelle Möglichkeit, ADT-ähnliches Verhalten zu erhalten.

+0

Das habe ich vermutet, aber danke, dass du es klargestellt hast! Ich bleibe bei Aufzeichnungen und Typen dann wahrscheinlich, da es idiomatischer ist. –

Verwandte Themen