Ist eine Funktion, die das erste Argument einer Liste von Funktionen typisiert, die in Type Racket typisiert werden können?

9

Ich kann eine einfache Funktion im nicht typisierten Racket namens curry-all schreiben, die eine Liste von Funktionen übernimmt, die alle die gleiche Art von Wert für ihr erstes Argument akzeptieren und eine Liste von Funktionen mit ihren ersten Argumenten curried %Vor%

Ein laufendes Beispiel für die obige Funktion finden Sie in diesem Code-Schnipsel .

Dies ist eine gültige Funktion, aber ich bin mir nicht sicher, ob es sogar möglich ist, Typed Racket aufgrund seiner polymorphen Typisierungskonstrukte einzugeben. Der Typ von curry selbst ist bereits ziemlich komplex, und offensichtlich müsste der Typ von curry-all notwendigerweise komplexer sein.

Ich habe einen relativ einfachen Versuch unternommen, diese Funktion zu tippen, obwohl mir klar war, dass sie nicht so funktionieren würde, wie ich es wollte:

%Vor%

Offensichtlich funktioniert das, wenn alle Funktionen identische Typen haben (was nicht wertlos ist!), aber es scheitert, wenn sie verschiedene Artigkeiten haben, selbst wenn die Typen ihrer ersten Argumente geteilt werden.

Gibt es eine Möglichkeit, den Typ dieser Funktion anzugeben, damit sie in einem allgemeineren Fall funktioniert?

    
Alexis King 04.03.2015, 08:14
quelle

0 Antworten