我用plai类型的语言制作节目,但是我想使用“汽车”等功能。和' cdr'
(require (typed-in racket
(car : (pair -> any/c))
(cdr : (pair -> any/c))))
然而它给了我错误对:坏类型
这是为什么?什么'键入'我应该填写而不是'对#39;因为在文档中它说两个函数的输入都是一对。
我尝试输入' Pair' '一对' '成对' '对'但没有工作
答案 0 :(得分:1)
我想你想要(... * ...)
(require (typed-in racket
(car : (('a * 'b) -> 'a))
(cdr : (('a * 'b) -> 'b))
(cons : ('a 'b -> ('a * 'b)))))
然后:
> (cons 1 2)
- (number * number)
'(1 . 2)
> (car (cons 1 2))
- number
1
有效类型列在https://docs.racket-lang.org/plai-typed/index.html#%28part._.Types%29中。 any/c
或pair
无效。
另请注意pair
中有fst
,snd
,plai-typed
。