Die Jank-Sprache: Clojure Gehostet von LLVM

Breites Spektrum Dynamik Nutzen Sie nach und nach den dynamischen Input und den statischen Input. Nutzen Sie sowohl die REPL-Iteration mit JIT-Kompilierung als auch die statische AOT-Kompilierung in native ausführbare Dateien. 01 Iterieren Sie wie bei Clojure

Während Sie die REPL durchlaufen und Ihre Datenformen herausfinden, wird Ihnen die statische Eingabe nicht im Weg stehen.

(Defn unaussprechlich "Entfernen des Namensraums eines Schlüsselworts." [kW] (-> Stichwortname kw)) 02 Fügen Sie Typanmerkungen hinzu, um Datenformen zu sperren

Anstatt Spec oder Malli zu verwenden, um Ihre Verträge zu definieren, verwenden Sie Janks Malli-Typdefinitionen und erhalten Sie dann eine statische Typprüfung für jede direkte oder indirekte Verwendung dieser Daten.

(Defn unaussprechlich "Entfernen des Namensraums eines Schlüsselworts." [kW] (-> Stichwortname kw)) (geben Sie unqualifiziertes [:fn [:Schlüsselwort]:unqualifiziertes Schlüsselwort] ein) 03 In Maschinencode kompilieren

jank basiert auf einem LLVM-basierten JIT. Wenn AOT aktiviert ist, können statisch und dynamisch verknüpfte ausführbare Dateien generiert werden. Der Jank-Compiler selbst hat sehr schnelle Startzeiten und einen geringen Speicherverbrauch.

$ time jank hello-world.clj Hi Welt echte 0m0.101s Benutzer 0m0.058s System 0m0.035s $time clj hallo-welt.clj Hi Welt echte 0m0.703s Benutzer 0m1.957s System 0m0.109s jank setzt auf Clojure. Behalten Sie Ihren bestehenden Code; Vertrauen und Geschwindigkeit gewinnen. 100 % kompatibel mit Clojure

Jede Clojure-Bibliothek ohne Interoperabilität wird in Ihre Jank-Projekte kompiliert.

Natives REPL und JIT

Verwenden Sie Ihr bevorzugtes nrepl-Editor-Plugin. jank verwendet LLVM-basiertes JIT, um Maschinencode spontan zu kompilieren.

Seien Sie progressiv

Fügen Sie Typen hinzu, wo immer Sie wollen, oder deaktivieren Sie die statische Typisierung ganz. Generieren Sie dynamische Binärdateien oder statische Binärdateien, beide mithilfe der AOT-Kompilierung. Ihre Wahl.

Werkzeugfreundlich

Leiningen, LSP, nREPL von Anfang an geplant. Der Jank-Compiler wurde auch mit Blick auf Tools geschrieben, sodass er für Lexifizierung, Parsing und Analyse verwendet werden kann.

Beispiele für Janks Alle folgenden Beispiele gelten auch für Clojure-Code. Filmindex erstellen

jank hat sehr mächtige Fähigkeiten zum Darstellen und Transformieren beliebiger Daten. Hier helfen die idiomatischen Verwendungen von Reduce, Zipmap, Repeat und Merge, um auf einfache Weise einen Index von Genre bis Film-ID zu erstellen. Für die Arbeit mit verschachtelten Daten ist kein Objektiv erforderlich.

(def Filme {:der-Wettermann {:Titel "Der Wettermann") :Genres [:Drama :Komödie] :tomatometer 59} :nightcrawler {:title "Nachtcrawler" :Genres [:Drama :Verbrechen :Thriller] : Tomatenmesser 95} :the-bourne-identity {:title "Die Bourne-Identität" :Genres [:Action :Thriller] :tomatometer 84}}) (def genre->movie (reduce (fn [acc [movie id]] (lass [{:keys [genres]} film genre->dieser-film (zipmap genres (wiederhole [id]))] (...

Breites Spektrum Dynamik Nutzen Sie nach und nach den dynamischen Input und den statischen Input. Nutzen Sie sowohl die REPL-Iteration mit JIT-Kompilierung als auch die statische AOT-Kompilierung in native ausführbare Dateien. 01 Iterieren Sie wie bei Clojure

Während Sie die REPL durchlaufen und Ihre Datenformen herausfinden, wird Ihnen die statische Eingabe nicht im Weg stehen.

(Defn unaussprechlich "Entfernen des Namensraums eines Schlüsselworts." [kW] (-> Stichwortname kw)) 02 Fügen Sie Typanmerkungen hinzu, um Datenformen zu sperren

Anstatt Spec oder Malli zu verwenden, um Ihre Verträge zu definieren, verwenden Sie Janks Malli-Typdefinitionen und erhalten Sie dann eine statische Typprüfung für jede direkte oder indirekte Verwendung dieser Daten.

(Defn unaussprechlich "Entfernen des Namensraums eines Schlüsselworts." [kW] (-> Stichwortname kw)) (geben Sie unqualifiziertes [:fn [:Schlüsselwort]:unqualifiziertes Schlüsselwort] ein) 03 In Maschinencode kompilieren

jank basiert auf einem LLVM-basierten JIT. Wenn AOT aktiviert ist, können statisch und dynamisch verknüpfte ausführbare Dateien generiert werden. Der Jank-Compiler selbst hat sehr schnelle Startzeiten und einen geringen Speicherverbrauch.

$ time jank hello-world.clj Hi Welt echte 0m0.101s Benutzer 0m0.058s System 0m0.035s $time clj hallo-welt.clj Hi Welt echte 0m0.703s Benutzer 0m1.957s System 0m0.109s jank setzt auf Clojure. Behalten Sie Ihren bestehenden Code; Vertrauen und Geschwindigkeit gewinnen. 100 % kompatibel mit Clojure

Jede Clojure-Bibliothek ohne Interoperabilität wird in Ihre Jank-Projekte kompiliert.

Natives REPL und JIT

Verwenden Sie Ihr bevorzugtes nrepl-Editor-Plugin. jank verwendet LLVM-basiertes JIT, um Maschinencode spontan zu kompilieren.

Seien Sie progressiv

Fügen Sie Typen hinzu, wo immer Sie wollen, oder deaktivieren Sie die statische Typisierung ganz. Generieren Sie dynamische Binärdateien oder statische Binärdateien, beide mithilfe der AOT-Kompilierung. Ihre Wahl.

Werkzeugfreundlich

Leiningen, LSP, nREPL von Anfang an geplant. Der Jank-Compiler wurde auch mit Blick auf Tools geschrieben, sodass er für Lexifizierung, Parsing und Analyse verwendet werden kann.

Beispiele für Janks Alle folgenden Beispiele gelten auch für Clojure-Code. Filmindex erstellen

jank hat sehr mächtige Fähigkeiten zum Darstellen und Transformieren beliebiger Daten. Hier helfen die idiomatischen Verwendungen von Reduce, Zipmap, Repeat und Merge, um auf einfache Weise einen Index von Genre bis Film-ID zu erstellen. Für die Arbeit mit verschachtelten Daten ist kein Objektiv erforderlich.

(def Filme {:der-Wettermann {:Titel "Der Wettermann") :Genres [:Drama :Komödie] :tomatometer 59} :nightcrawler {:title "Nachtcrawler" :Genres [:Drama :Verbrechen :Thriller] : Tomatenmesser 95} :the-bourne-identity {:title "Die Bourne-Identität" :Genres [:Action :Thriller] :tomatometer 84}}) (def genre->movie (reduce (fn [acc [movie id]] (lass [{:keys [genres]} film genre->dieser-film (zipmap genres (wiederhole [id]))] (...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow