Gibt es eine Programmiersprache, die currying durchführt, wenn benannte Parameter weggelassen werden?

8

Viele funktionale Programmiersprachen unterstützen Curry-Parameter . Um Curry-Funktionen zu unterstützen, sind die Parameter der Funktion im Wesentlichen ein Tupel, bei dem der letzte Parameter weggelassen werden kann, wodurch eine neue Funktion entsteht, die ein kleineres Tupel benötigt.

Ich denke daran, eine Sprache zu entwerfen, die immer Datensätze (auch benannte Parameter ) für Funktionsparameter verwendet.

So einfache mathematische Funktionen in meiner Marke glauben wäre:

%Vor%

Sie können jeden Datensatz an diese Funktionen übergeben, solange sie diese beiden benannten Parameter haben (sie können mehr nur "links" und "rechts" haben).

Wenn sie nur einen der genannten Parameter haben, wird eine neue Funktion erstellt:

%Vor%

Ich leihe etwas von Haskells Notation für oben aus.

Hat jemand eine Sprache gesehen, die das tut?

    
Adam Gent 10.06.2010, 13:53
quelle

2 Antworten

4

OCaml hat benannte Parameter und Currying ist automatisch (obwohl manchmal Typ Anmerkung erforderlich ist, wenn es um optionale Parameter geht), aber sie sind nicht tupled:

%Vor%     
ygrek 10.06.2010, 16:37
quelle
1

Sicher, Mathematica kann so etwas tun.

    
High Performance Mark 10.06.2010 13:59
quelle