-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathstring.rkt
More file actions
94 lines (74 loc) · 2.41 KB
/
string.rkt
File metadata and controls
94 lines (74 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#lang racket
(define str "Hello🎂 World")
(displayln str)
(displayln (immutable? str))
(displayln (string-ref str 5))
(displayln (string-upcase str))
(displayln (immutable? (string-upcase str)))
(displayln (string-downcase str))
(displayln (immutable? (string-downcase str)))
(displayln (string=? "Hello🎂 World" str))
(displayln (string<? "st" "𝌆"))
(displayln (string<=? "st" "𝌆"))
(displayln (make-string 5 #\c))
(displayln (make-string 5 #\🎂))
(displayln (immutable? (make-string 3 #\a)))
(displayln (string #\a #\🎂 #\c))
(displayln (immutable? (string #\a #\🎂 #\c)))
(displayln (string->immutable-string (string #\a #\🎂 #\c)))
(displayln (immutable? (string->immutable-string (string #\i #\🎂 #\c))))
(displayln (list->string '(#\a #\🎂 #\c)))
(displayln (immutable? (list->string '(#\a #\🎂 #\c))))
(displayln (string-length (list->string '(#\a #\🎂 #\c))))
(displayln (substring str 3))
(displayln (substring str 3 7))
(displayln (immutable? (substring str 3)))
(displayln (immutable? "hi"))
(displayln (immutable? (string-upcase "hi")))
(displayln (string-append "Hello" "World" "🎂"))
(displayln (immutable? (string-append "a" "🎂")))
; Valid string->number arguments
(displayln (string->number "123"))
(displayln (string->number "-123"))
(displayln (string->number "A"))
(displayln (string->number "AFe1" 16))
(displayln (string->number "1101" 2))
; Invalid string->number arguments
(displayln (string->number " 123"))
(displayln (string->number "123x"))
(displayln (string->number "2" 2))
(displayln (string->number "" 2))
(displayln (string->number " "))
;; These don't work because RacketScript cannot yet handle racket/string.
; (displayln (car (string-split "Hello+World" "+")))
; (displayln (immutable? (car (string-split "Hello+World" "+"))))
; (displayln (car (cdr (string-split "Hello+World" "+"))))
;; Mutable string methods
(define mstr (string #\a #\🎂 #\c))
(string-set! mstr 2 #\x)
(displayln mstr)
;; string cmp
(string<=? "b" "aa")
(string<=? "aa" "b")
(string<=? "aa" "a")
(string<=? "a" "aa")
(string<=? "aa" "aa")
(string<? "b" "aa")
(string<? "aa" "b")
(string<? "aa" "a")
(string<? "a" "aa")
(string<? "aa" "aa")
(string>=? "b" "aa")
(string>=? "aa" "b")
(string>=? "aa" "a")
(string>=? "a" "aa")
(string>=? "aa" "aa")
(string>? "b" "aa")
(string>? "aa" "b")
(string>? "aa" "a")
(string>? "a" "aa")
(string>? "aa" "aa")
;; test printing of fn name
string
string?
string-append