File tree Expand file tree Collapse file tree 6 files changed +92
-3
lines changed
typed-racket-lib/typed-racket Expand file tree Collapse file tree 6 files changed +92
-3
lines changed Original file line number Diff line number Diff line change 12981298;; Section 4.21 (TreeLists)
12991299
13001300[treelist (-poly (a) (->* (list) a (-treelist a)))]
1301- [treelist-empty? (-poly (a) ( - > (-treelist a ) B) )]
1302- [treelist-length (-poly (a) ( - > (-treelist a ) -Index) )]
1301+ [treelist-empty? (-> (-treelist Univ ) B)]
1302+ [treelist-length (-> (-treelist Univ ) -Index)]
13031303[treelist-member?
13041304 (-poly (a)
13051305 (cl->* ((-treelist a) a . -> . Univ)
Original file line number Diff line number Diff line change 12781278 [(? ThreadCellTop?) A]
12791279 [(ThreadCell: elem2) (type≡? A elem1 elem2)]
12801280 [_ (continue<: A t1 t2 obj)])]
1281+ [(case: TreeList (TreeList: elem1))
1282+ (match t2
1283+ [(TreeList: elem2) (subtype* A elem1 elem2)]
1284+ [(SequenceTop:) A]
1285+ [(Sequence: (list seq-t)) (subtype* A elem1 seq-t)]
1286+ [_ (continue<: A t1 t2 obj)])]
12811287 [(case: Union (Union/set: base1 ts1 elems1))
12821288 (let ([A (subtype* A base1 t2 obj)])
12831289 (and A
Original file line number Diff line number Diff line change 1+ #lang typed/racket
2+
3+ (require racket/treelist)
4+
5+ (define-predicate string-treelist? (TreeListof String))
6+
7+ (string-treelist? (treelist 1 2 3 ))
8+
9+ (string-treelist? (treelist "1 " "2 " "3 " ))
Original file line number Diff line number Diff line change 1+ #lang typed/racket
2+
3+ (require racket/treelist)
4+
5+ (define tl (treelist 0 1 2 3 ))
6+
7+ (treelist-empty? tl)
8+
9+ (treelist-length tl)
10+
11+ (treelist-member? tl 1 )
12+
13+ (treelist-first tl)
14+
15+ (treelist-rest tl)
16+
17+ (treelist-last tl)
18+
19+ (treelist-add tl 1 )
20+
21+ (treelist-cons tl 1 )
22+
23+ (treelist-delete tl 1 )
24+
25+ (make-treelist 5 1 )
26+
27+ (treelist-ref tl 1 )
28+
29+ (treelist-insert tl 1 1 )
30+
31+ (treelist-set tl 0 1 )
32+
33+ (treelist-take tl 2 )
34+
35+ (treelist-take tl 2 )
36+ (treelist-drop tl 2 )
37+ (treelist-take-right tl 2 )
38+ (treelist-drop-right tl 2 )
39+
40+ (treelist-sublist tl 1 3 )
41+
42+ (treelist-reverse tl)
43+
44+ (treelist->list tl)
45+ (list->treelist (list 0 1 2 3 ))
46+
47+ (treelist->vector tl)
48+ (vector->treelist (vector 0 1 2 3 ))
49+
50+ (treelist? treelist)
51+
52+ (treelist-append tl tl tl)
53+
54+ (treelist-map tl (λ ([x : Byte]) (+ x 1 )))
55+
56+ (treelist-for-each tl (λ ([x : Byte]) (+ x 1 )))
57+
58+ (treelist-filter (λ ([x : Byte]) (equal? x 1 )) tl)
59+
60+ (treelist-find tl (λ ([x : Byte]) (equal? x 1 )))
61+
62+ (treelist-index-of tl 3 )
63+ (treelist-index-of tl 3 equal?)
64+
65+ (treelist-flatten (treelist tl tl))
66+
67+ (treelist-append (treelist (treelist tl) tl))
68+
69+ (treelist-sort tl >)
Original file line number Diff line number Diff line change 179179 [make-Immutable-Vector ()]
180180 [make-Immutable-HashTable () ()]
181181 [make-Set ()]
182+ [make-TreeList ()]
182183 [make-Evt ()]
183184 [make-Syntax ()]
184185 [make-Future ()])
298299 [(-mu x (make-Listof x)) (-mu x* (make-Listof x*))]
299300 [(-pair -Number -Number) (-pair Univ -Number)]
300301 [(-pair -Number -Number) (-pair -Number -Number)]
302+ ;; simple treelist types
303+ [(-treelist -Number) (-treelist Univ)]
304+ [(-treelist -Number) (-treelist -Number)]
305+ [FAIL (-treelist -Number) (-treelist -Symbol)]
301306 ;; from page 7 (my favorite page! But seriously, page 7 of... what???)
302307 [(-mu t (-> t t)) (-mu s (-> s s))]
303308 [(-mu s (-> -Number s)) (-mu t (-> -Number (-> -Number t)))]
Original file line number Diff line number Diff line change 19411941 ;;(tc-e (in-treelist (treelist "a")) (-seq -String)) FIXME: "missing type identifier"
19421942 (tc-e (list->treelist (list "a " )) (-treelist -String))
19431943 (tc-e (vector->treelist (vector "a " )) (-treelist -String))
1944- (tc-e (treelist? (treelist "a " )) - Boolean)
1944+ (tc-e (treelist? (treelist "a " )) #:ret (tc-ret - Boolean -true-propset) )
19451945 (tc-e (treelist? (list "a " )) #:ret (tc-ret -Boolean -false-propset))
19461946 (tc-e (treelist-append (treelist "a " ) (treelist "b " )) (-treelist -String))
19471947 (tc-e (treelist-append (treelist "a " ) (treelist "b " ) (treelist "c " )) (-treelist -String))
You can’t perform that action at this time.
0 commit comments