RACKET:需要配对类型功能

时间:2016-03-26 17:28:15

标签: racket

我用plai类型的语言制作节目,但是我想使用“汽车”等功能。和' cdr'

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

然而它给了我错误对:坏类型

这是为什么?什么'键入'我应该填写而不是'对#39;因为在文档中它说两个函数的输入都是一对。

我尝试输入' Pair' '一对' '成对' '对'但没有工作

1 个答案:

答案 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/cpair无效。

另请注意pair中有fstsndplai-typed