In Bezug auf meinen Artikel "Curry Cheet Sheet" wurde er mit zunehmender Anzahl unterstützter Sprachen und ergänzender Ergänzungen eher zu einem Kommentar als zu einem Spickzettel, daher werde ich ihn erneuern. Erstellt eine Liste mit Beschreibungsbeispielen. Nach einer Weile kann der Titel des Originalartikels in "Zusammenfassung der Curry-Beschreibung" und in "Curry-Spickzettel" geändert werden.
Bei Sprachen, die mehrere Notationen zulassen, wird nur der kürzeste Schreibstil angegeben, wenn die neueste Version und die Curling-Methode nicht verwendet werden. Weitere Unterschiede aufgrund von Notation und Version finden Sie unter Originalartikel.
Sprache | (λxy.(wahr, if x>y;und falsch, if x≦y)) 10 20 |
---|---|
Haskell | (\x y -> x > y) 10 20 |
Scheme | (((lambda (x) (lambda (y) (> x y))) 10) 20) |
Python | (lambda x: lambda y: x > y)(10)(20) |
Ruby | -> x { -> y { x > y } }[10][20] |
JavaScript | (x => y => x > y)(10)(20) |
Scala | ((x: Int) => (y: Int) => x > y)(10)(20) |
Perl | sub { my $x = shift; return sub { my $y = shift; return $x > $y }; }->(10)->(20) |
Geh Sprache | func(x int) func(int) bool { return func(y int) bool { return (x > y) } }(10)(20) |
PHP | (fn($x) => fn($y) => $x > $y)(10)(20) |
Julia | (x -> y -> x > y)(10)(20) |
Emacs Lisp, Common Lisp | (funcall (funcall (lambda (x) (lambda (y) (> x y))) 10) 20) |
R Sprache | (function(x) { function(y) { x > y } })(10)(20) |
Recommended Posts