add tests for occurrence typing work
original commit: 5f0597b83463080681d97830708a1a72e3f9bb38
This commit is contained in:
parent
e3733c768f
commit
083b1e10ae
39
collects/tests/typed-scheme/succeed/icfp-examples.ss
Normal file
39
collects/tests/typed-scheme/succeed/icfp-examples.ss
Normal file
|
@ -0,0 +1,39 @@
|
|||
#lang typed/scheme
|
||||
|
||||
;; Example 1
|
||||
(define: x : Any 7)
|
||||
(if (number? x) (add1 x) 0)
|
||||
|
||||
;; Example 2
|
||||
(define: (f [x : (U String Number)]) : Number
|
||||
(if (number? x) (add1 x) (string-length x)))
|
||||
|
||||
;; Example 3
|
||||
(define: v : Number 12)
|
||||
(define: l : (Listof Number) (list 1 2 3 12))
|
||||
(let ([x (member v l)])
|
||||
(if x
|
||||
(add1 (car x))
|
||||
(error 'fail)))
|
||||
|
||||
;; Example 4
|
||||
(if (or (number? x) (string? x)) (f x) 0)
|
||||
|
||||
;; Example 5
|
||||
(define: y : Any "foo")
|
||||
(if (and (number? x) (string? y))
|
||||
(+ x (string-length y))
|
||||
0)
|
||||
|
||||
;; Example 6 has an intentional error
|
||||
(define: z : (U Number String) 7)
|
||||
(if (and (number? z) (string? y))
|
||||
(+ z (string-length y))
|
||||
(string-length z))
|
||||
|
||||
;; Example 7
|
||||
(if (if (number? x) (string? y) #f)
|
||||
(+ x (string-length y))
|
||||
0)
|
||||
|
||||
|
|
@ -5,4 +5,8 @@
|
|||
|
||||
(if x (add1 x) 7)
|
||||
|
||||
(if (number? x) (add1 x) 7)
|
||||
(if (number? x) (add1 x) 7)
|
||||
|
||||
(define: y : (Pair Any Any) (cons 1 2))
|
||||
|
||||
(if (number? (car y)) (add1 (car y)) 7)
|
||||
|
|
Loading…
Reference in New Issue
Block a user