Added types and tests for string operations
This commit is contained in:
parent
a621eaf041
commit
ab23db7b5b
75
collects/tests/typed-scheme/succeed/strings.rkt
Normal file
75
collects/tests/typed-scheme/succeed/strings.rkt
Normal file
|
@ -0,0 +1,75 @@
|
|||
#lang typed/racket
|
||||
|
||||
(: s1 String)
|
||||
(: s2 String)
|
||||
(: s3 String)
|
||||
(: s4 String)
|
||||
(: s5 String)
|
||||
(: s6 String)
|
||||
|
||||
(define s1 "abc")
|
||||
(define s2 "def")
|
||||
(define s3 "DEF")
|
||||
(define s4 (string #\a #\b #\c))
|
||||
(define s5 (make-string 4 #\b))
|
||||
(define s6 (build-string 26 integer->char))
|
||||
|
||||
|
||||
|
||||
(string? s1)
|
||||
(string? 2)
|
||||
|
||||
(string->immutable-string s5)
|
||||
(string-length s6)
|
||||
(string-copy s3)
|
||||
(string-copy! (make-string 4) 0 s4)
|
||||
(string-copy! (make-string 4) 1 s4 1)
|
||||
(string-copy! (make-string 4) 1 s4 1 2)
|
||||
|
||||
(string-fill! (make-string 5) #\Z)
|
||||
|
||||
(string-append)
|
||||
(string-append s1 s2)
|
||||
(string-append s1 s2 s3)
|
||||
|
||||
(string->list s6)
|
||||
(list->string (list #\a #\d #\d))
|
||||
|
||||
(string=? s2 s3)
|
||||
(string<? s2 s3)
|
||||
(string>? s2 s3)
|
||||
(string<=? s2 s3)
|
||||
(string>=? s2 s3)
|
||||
|
||||
(string-upcase s2)
|
||||
(string-downcase s3)
|
||||
(string-titlecase s4)
|
||||
(string-foldcase s5)
|
||||
|
||||
|
||||
(string-ci=? s2 s3)
|
||||
(string-ci<? s2 s3)
|
||||
(string-ci>? s2 s3)
|
||||
(string-ci<=? s2 s3)
|
||||
(string-ci>=? s2 s3)
|
||||
|
||||
|
||||
(string-normalize-nfd s2)
|
||||
(string-normalize-nfkd s3)
|
||||
(string-normalize-nfc s4)
|
||||
(string-normalize-nfkc s5)
|
||||
|
||||
|
||||
|
||||
(string-locale=? s2 s3)
|
||||
(string-locale<? s2 s3)
|
||||
(string-locale>? s2 s3)
|
||||
|
||||
(string-locale-upcase s2)
|
||||
(string-locale-downcase s3)
|
||||
|
||||
|
||||
(string-locale-ci=? s2 s3)
|
||||
(string-locale-ci<? s2 s3)
|
||||
(string-locale-ci>? s2 s3)
|
||||
|
|
@ -23,11 +23,16 @@
|
|||
[build-list (-poly (a) (index-type (-Index . -> . a) . -> . (-lst a)))]
|
||||
[make-list (-poly (a) (index-type a . -> . (-lst a)))]
|
||||
|
||||
[string-ref (-> -String index-type -Char)]
|
||||
[substring (->opt -String index-type [index-type] -String)]
|
||||
;Section 3.3
|
||||
|
||||
[make-string (cl-> [(index-type) -String] [(index-type -Char) -String])]
|
||||
[string-ref (-> -String index-type -Char)]
|
||||
[string-set! (-String index-type -Char . -> . -Void)]
|
||||
[substring (->opt -String index-type [index-type] -String)]
|
||||
[string-copy! (-String index-type -String [index-type index-type] . ->opt . -Void)]
|
||||
[build-string (index-type (index-type . -> . -Char) . -> . -String)]
|
||||
|
||||
|
||||
|
||||
[read-string (index-type [-Input-Port] . ->opt . (Un -String (-val eof)))]
|
||||
[read-string! (-String [-Input-Port index-type index-type] . ->opt . (Un -Index (-val eof)))]
|
||||
|
|
|
@ -191,7 +191,7 @@
|
|||
(-> (Un a (-val #f)) a)))]
|
||||
[defined? (->* (list Univ) -Boolean : (-FS (-not-filter -Undefined 0 null) (-filter -Undefined 0 null)))]
|
||||
[gensym (->opt [Sym] Sym)]
|
||||
[string-append (->* null -String -String)]
|
||||
|
||||
[open-input-string (-> -String -Input-Port)]
|
||||
[open-input-bytes (-> -Bytes -Input-Port)]
|
||||
[open-output-file
|
||||
|
@ -234,11 +234,90 @@
|
|||
[channel-try-get (-poly (a) ((-channel a) . -> . (Un a (-val #f))))]
|
||||
[channel-put (-poly (a) ((-channel a) a . -> . -Void))]
|
||||
|
||||
|
||||
|
||||
;Section 3.3
|
||||
|
||||
[string? (make-pred-ty -String)]
|
||||
;make-string (in Index)
|
||||
[string (->* '() -Char -String)]
|
||||
|
||||
[string->immutable-string (-> -String -String)]
|
||||
|
||||
[string-length (-String . -> . -Index)]
|
||||
[unsafe-string-length (-String . -> . -Index)]
|
||||
|
||||
;string-ref (in Index)
|
||||
;string-set! (in Index)
|
||||
;substring (in Index)
|
||||
|
||||
[string-copy (-> -String -String)]
|
||||
;string-copy! (in Index)
|
||||
[string-fill! (-> -String -Char -Void)]
|
||||
|
||||
[string-append (->* null -String -String)]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[string->list (-String . -> . (-lst -Char))]
|
||||
[list->string ((-lst -Char) . -> . -String)]
|
||||
;build-string (in Index)
|
||||
|
||||
|
||||
|
||||
[string=? (->* (list -String -String) -String B)]
|
||||
[string<? (->* (list -String -String) -String B)]
|
||||
[string<=? (->* (list -String -String) -String B)]
|
||||
[string>? (->* (list -String -String) -String B)]
|
||||
[string>=? (->* (list -String -String) -String B)]
|
||||
|
||||
|
||||
|
||||
[string-ci=? (->* (list -String -String) -String B)]
|
||||
[string-ci<? (->* (list -String -String) -String B)]
|
||||
[string-ci<=? (->* (list -String -String) -String B)]
|
||||
[string-ci>? (->* (list -String -String) -String B)]
|
||||
[string-ci>=? (->* (list -String -String) -String B)]
|
||||
|
||||
[string-upcase (-> -String -String)]
|
||||
[string-downcase (-> -String -String)]
|
||||
[string-titlecase (-> -String -String)]
|
||||
[string-foldcase (-> -String -String)]
|
||||
|
||||
|
||||
[string-normalize-nfd (-> -String -String)]
|
||||
[string-normalize-nfkd (-> -String -String)]
|
||||
[string-normalize-nfc (-> -String -String)]
|
||||
[string-normalize-nfkc (-> -String -String)]
|
||||
|
||||
|
||||
|
||||
[string-locale=? (->* (list -String -String) -String B)]
|
||||
[string-locale<? (->* (list -String -String) -String B)]
|
||||
[string-locale>? (->* (list -String -String) -String B)]
|
||||
|
||||
|
||||
|
||||
[string-locale-ci=? (->* (list -String -String) -String B)]
|
||||
[string-locale-ci<? (->* (list -String -String) -String B)]
|
||||
[string-locale-ci>? (->* (list -String -String) -String B)]
|
||||
|
||||
[string-locale-upcase (-> -String -String)]
|
||||
[string-locale-downcase (-> -String -String)]
|
||||
|
||||
|
||||
|
||||
; racket/string
|
||||
[string-append*
|
||||
(cl->* (-> (-lst -String) -String)
|
||||
(-> -String (-lst -String) -String))]
|
||||
|
||||
[string-join (-> (-lst -String) -String -String)]
|
||||
|
||||
|
||||
|
||||
[symbol? (make-pred-ty Sym)]
|
||||
[keyword? (make-pred-ty -Keyword)]
|
||||
[list? (make-pred-ty (-lst Univ))]
|
||||
|
@ -333,9 +412,6 @@
|
|||
[member (-poly (a) (a (-lst a) . -> . (-opt (-lst a))))]
|
||||
[findf (-poly (a) ((a . -> . B) (-lst a) . -> . (-opt a)))]
|
||||
|
||||
[string<? (->* (list -String -String) -String B)]
|
||||
[string>? (->* (list -String -String) -String B)]
|
||||
[string=? (->* (list -String -String) -String B)]
|
||||
[char=? (->* (list -Char -Char) -Char B)]
|
||||
[char<=? (->* (list -Char -Char) -Char B)]
|
||||
[char>=? (->* (list -Char -Char) -Char B)]
|
||||
|
@ -346,8 +422,6 @@
|
|||
[char-ci>=? (->* (list -Char -Char) -Char B)]
|
||||
[char-ci>? (->* (list -Char -Char) -Char B)]
|
||||
[char-ci<? (->* (list -Char -Char) -Char B)]
|
||||
[string<=? (->* (list -String -String) -String B)]
|
||||
[string>=? (->* (list -String -String) -String B)]
|
||||
|
||||
[char-alphabetic? (-> -Char B)]
|
||||
[char-lower-case? (-> -Char B)]
|
||||
|
@ -365,16 +439,6 @@
|
|||
pc po sc sm sk so zs zp zl cc cf cs co cn))))]
|
||||
[make-known-char-range-list (-> (-lst (-Tuple (list -PosInt -PosInt B))))]
|
||||
|
||||
[string-ci<? (->* (list -String -String) -String B)]
|
||||
[string-ci>? (->* (list -String -String) -String B)]
|
||||
[string-ci=? (->* (list -String -String) -String B)]
|
||||
[string-ci<=? (->* (list -String -String) -String B)]
|
||||
[string-ci>=? (->* (list -String -String) -String B)]
|
||||
|
||||
[string-upcase (-> -String -String)]
|
||||
[string-downcase (-> -String -String)]
|
||||
[string-titlecase (-> -String -String)]
|
||||
[string-foldcase (-> -String -String)]
|
||||
[char-upcase (-> -Char -Char)]
|
||||
[char-downcase (-> -Char -Char)]
|
||||
[char-titlecase (-> -Char -Char)]
|
||||
|
@ -383,13 +447,7 @@
|
|||
[integer->char (-> -Integer -Char)]
|
||||
[char-utf-8-length (-> -Char (apply Un (map -val '(1 2 3 4 5 6))))]
|
||||
|
||||
[string-normalize-nfd (-> -String -String)]
|
||||
[string-normalize-nfkd (-> -String -String)]
|
||||
[string-normalize-nfc (-> -String -String)]
|
||||
[string-normalize-nfkc (-> -String -String)]
|
||||
|
||||
[string-copy (-> -String -String)]
|
||||
[string->immutable-string (-> -String -String)]
|
||||
|
||||
|
||||
[with-input-from-file
|
||||
|
@ -807,10 +865,6 @@
|
|||
|
||||
[maybe-print-message (-String . -> . -Void)]
|
||||
|
||||
[list->string ((-lst -Char) . -> . -String)]
|
||||
[string->list (-String . -> . (-lst -Char))]
|
||||
[build-string (-Nat (-Index . -> . -Char) . -> . -String)]
|
||||
|
||||
[sort (-poly (a b) (cl->* ((-lst a) (a a . -> . B)
|
||||
#:cache-keys? B #f
|
||||
. ->key . (-lst a))
|
||||
|
@ -999,11 +1053,6 @@
|
|||
(-poly (a) ((list (-vec a)) -Integer . ->* . (-values (list (-vec a) (-vec a)))))]
|
||||
|
||||
|
||||
;; racket/string
|
||||
[string-join (-> (-lst -String) -String -String)]
|
||||
[string-append*
|
||||
(cl->* (-> (-lst -String) -String)
|
||||
(-> -String (-lst -String) -String))]
|
||||
|
||||
;; scheme/system
|
||||
[system ((Un -String -Bytes) . -> . -Boolean)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user