typed-racket/typed-racket-test/succeed/let-values-tests.rkt
2014-12-16 10:07:25 -05:00

27 lines
845 B
Racket

#lang typed-scheme
(define-type-alias number Number)
(define-type-alias boolean Boolean)
(define-type-alias symbol Symbol)
(define-type-alias top Any)
(define-type-alias list-of Listof)
(let-values ([(#{x : number} #{y : number}) (values 3 4)]
[(#{z : number}) (values 3)]
#;[(#{fact : (number -> number)})
(lambda: ([x : number])
(if (zero? x) 1 (* x (fact (- x 1)))))]
#;[(#{z : number}) (- x y)])
(+ x y))
(letrec-values ([(#{x : number} #{y : number}) (values 3 4)])
(+ x y))
(letrec-values ([(#{x : number} #{y : number}) (values 3 4)]
[(#{z : number}) (- x y)]
[(#{fact : (number -> number)})
(lambda: ([x : number])
(if (zero? x) 1 (* x (fact (- x 1)))))])
(+ x y))
(define-values (#{x : number} #{y : number}) (values 1 2))
#;(define-values (#{z : number}) (values 1 2))