Ich würde gerne in der Lage sein, lambdas mit der üblichen Lisp-Syntax in Clojure zu definieren. Zum Beispiel:Wie Lambda als eine Funktion namens "Lambda" in Clojure implementieren?
(lambda (myarg)
(some-functions-that-refer-to myarg))
Dies muss in dem gleichen wie führen:
#(some-functions-that-refer-to %)
In meinem Fall, ich weiß, dass ich immer würde genau eine arg, so vielleicht, dass vereinfacht die Dinge. (Aber es kann alles genannt werden - "Myarg" oder was auch immer.)
Ich vermute, eine praktikable Lösung ist "(defcamro Lambda ...". Wenn ja, ich bin mir nicht sicher, der beste Weg, um fortzufahren . Wie sauber an den aRG Namen% übersetzen? Und wie mit der richtigen Funktion am Ende?
Oder gibt es eine einfachere Lösung als mein eigenes Makro zu schreiben, die tatsächlich Clojure ist erneut implementiert ... Lambda?
Danke Brian, das ist genau das, was ich brauchte. Es ist mir peinlich zu sagen, dass ich hier einen blinden Fleck hatte ... Ich bin so verliebt in den #() Zucker, dass ich vergessen habe, dass es das formale Fn gibt. Nun, ich möchte wirklich, wirklich, den Makro-Ansatz verwenden, weil ich in einer Situation bin, in der ich gezwungen bin, einfachen Lisp-Code auszuführen, der "Lambda" verwendet. Und das Makro, das Sie geschrieben haben, ist genau das, was ich brauchte. Vielen Dank! – dirtyvagabond
Klingt nach Spaß, viel Glück. :) –