Java-Code in schnellen Clojure-Code umwandeln

8

Kann dieser Java-Code in Clojure-Code übersetzt werden, der so schnell oder fast so schnell ist?

Ich habe einfachere Funktionen wie das Hinzufügen von zwei Arrays bekommen, um mit Typhinting mit angemessener Geschwindigkeit zu arbeiten, aber ich konnte Clojure nicht dazu bringen, das zu tun, was die unten genannten Funktionen in einer vernünftigen Zeitspanne mit Java tun Interop- oder Incanter-Matrizen und verwenden entweder funktionale oder imperative Stile.

Fehle ich etwas über Typ Hinting oder ist es am besten, so etwas in Java zu tun?

%Vor%     
2daaa 27.09.2010, 20:24
quelle

3 Antworten

8

Versuchen Sie Folgendes in clojure 1.3 (Hauptverzweigung):

%Vor%     
Alex Taggart 28.09.2010 01:16
quelle
5

beginnend mit dem clojure 1.3-Zweig, der momentan auf github ist, können Sie Grundelemente als Argumente für Funktionen verwenden und zurückgeben von Funktionen. Sie müssen auch keine Tipp-Nummer-Primitiven mehr eingeben. Es sollte wirklich diese Art von Code viel schneller und viel eleganter erscheinen lassen.

Beim Typhinweis könnten Sie der Tatsache entgegentreten, dass (& lt; = clojure 1.2) alle Funktionsargumente eingerahmt wurden .

    
Arthur Ulfeldt 27.09.2010 20:36
quelle
3

Das andere Stück, das helfen wird (auch in 1.3) ist die statische Funktionsverknüpfung, die einige Funktionsaufrufe so schnell wie Methodenaufrufe macht (dies wird auch in dem von Arthur geposteten Link beschrieben).

Es wird immer noch schwierig sein, diesen Code auf wirklich idiomatische Weise (dh mit der Funktion "map" höherer Ordnung) für jetzt bei voller Java-Performance zu schreiben, da Funktionen höherer Ordnung statische Verknüpfung nicht verwenden können , aber (schamlose Steckerwarnung) das will Rich Hickey korrigieren:

Ссылка

    
tvachon 27.09.2010 21:57
quelle

Tags und Links