2016-03-26 11 views
1

Ich bin ein Programm in der plai typisierte Sprache zu machen, aber ich die Funktionen ‚Auto‘ und ‚cdr‘SCHLÄGER: Erfordern ein Paar Typ Funktion

(require (typed-in racket 
       (car : (pair -> any/c)) 
       (cdr : (pair -> any/c)))) 

verwenden möchten, jedoch es mir den Fehler gibt Paar: schlechter Typ

Warum ist das? Was "Typ" sollte ich anstelle von "Paar" ausfüllen, da in der Dokumentation heißt, dass die Eingabe für beide Funktionen ein Paar ist.

habe ich versucht, die Eingabe 'Paar' 'Paar' 'Paare' 'Paare' aber keine Arbeit

Antwort

1

Ich glaube, Sie wollen (... * ...)

(require (typed-in racket 
        (car : (('a * 'b) -> 'a)) 
        (cdr : (('a * 'b) -> 'b)) 
        (cons : ('a 'b -> ('a * 'b))))) 

Dann:

> (cons 1 2) 
- (number * number) 
'(1 . 2) 
> (car (cons 1 2)) 
- number 
1 

Gültige Typen sind aufgeführt in https://docs.racket-lang.org/plai-typed/index.html#%28part._.Types%29. any/c oder pair ist nicht gültig.

Beachten Sie auch, dass es sind pair, fst, snd in plai-typed.