racket/collects/racket/contract/scratch.rkt
2010-08-07 14:35:04 -05:00

60 lines
1.0 KiB
Racket

#lang racket/base
(require racket/contract)
(->i (#:kwd1 [x number?]
#:kwd2 [y number?])
#:rest [x any/c]
any)
;=> duplicate identifier 'x'
#|
test cases:
(->i (#:kwd1 [x number?]
#:kwd2 [x number?])
(values [y number?]
[z number?]))
=> duplicate identifier 'x'
(->i (#:kwd1 [w number?]
#:kwd1 [x number?])
(values [y number?]
[z number?]))
=> duplicate keyword
(->i (#:kwd1 [w number?]
#:kwd2 [x number?])
(values [y number?]
[w number?]))
=> duplicate variable 'w'
(->i (#:kwd1 [w number?]
#:kwd2 [x number?])
(values [y number?]
[y number?]))
=> duplicate variable 'y'
(->i (#:kwd1 [w number?]
#:kwd2 [x number?])
(values [y number?]
[w number?]))
=> duplicate identifier 'w'
(let ([values (λ (x) x)])
(->i (#:kwd1 [w number?]
#:kwd2 [x number?])
(values number?)))
;=> no error(?)
(->i (#:kwd1 [x number?]
#:kwd2 [y number?])
[x number?])
;=> duplicate identifier 'x'
|#