Man kann einen Typen in einer Funktion in Idris zurückkehren, zum BeispielGibt es eine nette Möglichkeit, `->` direkt als Funktion in Idris zu verwenden?
t : Type -> Type -> Type
t a b = a -> b
Aber die Situation kam (wenn mit dem Schreiben einiger Parser experimentieren), dass ich
->
zu falten, um eine Liste von Typen, also nutzen wollte
typeFold : List Type -> Type
typeFold = foldr1 (->)
So dass typeFold [String, Int]
String -> Int : Type
geben würde. Dies lässt sich nicht kompilieren aber:
error: no implicit arguments allowed
here, expected: ")",
dependent type signature,
expression, name
typeFold = foldr1 (->)
^
Aber das funktioniert gut:
t : Type -> Type -> Type
t a b = a -> b
typeFold : List Type -> Type
typeFold = foldr1 t
Gibt es eine bessere Art und Weise mit ->
zu arbeiten, und wenn nicht, ist es wert, als Feature-Request erhöhen?
Dann könnte man etwas wie 'typeFold = foldr1 (~>)' verwenden –