2016-03-10 4 views
5

Zusätzlich zu impliziten Argumenten können Sie mit Agda den Wert eines expliziten Arguments weglassen und durch eine Metavariable ersetzen, die mit dem Zeichen _ gekennzeichnet ist und deren Wert dann durch dieselbe Prozedur wie die implizite Auflösung bestimmt wird.Hat Idris ein Äquivalent zu Agdas `_` Ausdrücken?

Hat Idris eine ähnliche Funktion oder sind implizite Argumente die einzige Möglichkeit, Metavariablen in Programme einzuführen?

Antwort

7

Sie können auch _ in Idris verwenden.

import Data.Vect 

foo : (n : Nat) -> Vect n a -> Vect n a 
foo n xs = xs 

bar : Vect 3 Nat 
bar = foo _ [1, 2, 3] -- works 
+0

Sieht aus wie ich das vermisst habe, dachte, es war ungültig, weil ich andere Syntaxfehler hatte! Wie auch immer, es ist nicht sehr klar dokumentiert. Vielen Dank! – jmite

Verwandte Themen