120 lines
2.1 KiB
Scheme
120 lines
2.1 KiB
Scheme
|
|
(integer->char -20)
|
|
(integer->char 270)
|
|
|
|
(char->integer #\N)
|
|
(char->integer #\+)
|
|
(char->integer #\#)
|
|
|
|
(define table
|
|
(lambda (n)
|
|
(if (< n 128)
|
|
(begin
|
|
(display n) (display " ")
|
|
(display (integer->char n)) (display " ")
|
|
(display (char->integer (integer->char n)))
|
|
(newline)
|
|
(table (+ n 1))))))
|
|
|
|
(table 32)
|
|
|
|
(list->string '())
|
|
(list->string '(#\a #\b #\c))
|
|
(list->string '(#\a #\b . #\c))
|
|
|
|
(define test1
|
|
(lambda (n)
|
|
(let ((str
|
|
(list->string
|
|
(map
|
|
(lambda (pos)
|
|
(integer->char
|
|
(+ (char->integer #\A) pos -1)))
|
|
(reverse (list-n n))))))
|
|
(map
|
|
(lambda (pos)
|
|
(string-ref str (- pos 1)))
|
|
(reverse (list-n n))))))
|
|
|
|
(test1 5)
|
|
(test1 10)
|
|
(test1 20)
|
|
|
|
(define randletters
|
|
(lambda (n)
|
|
(if (zero? n) '()
|
|
(cons
|
|
(integer->char
|
|
(+ (char->integer #\A) (random 26)))
|
|
(randletters (- n 1))))))
|
|
|
|
(define test2
|
|
(lambda (len)
|
|
(let* ((r (randletters len))
|
|
(s (list->string r)))
|
|
(display r) (display " ")
|
|
(display s) (display " ")
|
|
(display (string->list s)) (newline))))
|
|
|
|
(test2 5)
|
|
(test2 10)
|
|
(test2 20)
|
|
|
|
(string-append)
|
|
(apply string-append
|
|
(map symbol->string '(one two three four five)))
|
|
(make-string 0)
|
|
|
|
(string->list (make-string 5))
|
|
(string->list (make-string 15))
|
|
|
|
(define test3
|
|
(lambda (len)
|
|
(if (zero? len) ""
|
|
(string-append
|
|
(make-string len)
|
|
(make-string
|
|
len
|
|
(integer->char
|
|
(+ (char->integer #\a) len -1)))
|
|
(test3 (- len 1))))))
|
|
|
|
(test3 1)
|
|
(test3 5)
|
|
(test3 7)
|
|
|
|
|
|
(number->string 123.456e7)
|
|
(number->string 678.456)
|
|
(map number->string (list-n 30))
|
|
|
|
(define test4
|
|
(lambda (base)
|
|
(map
|
|
(lambda (n)
|
|
(number->string n base))
|
|
(reverse (list-n 30)))))
|
|
|
|
(test4 2)
|
|
(test4 3)
|
|
(test4 8)
|
|
(test4 10)
|
|
(test4 12)
|
|
(test4 16)
|
|
|
|
(define test5
|
|
(lambda (base)
|
|
(map
|
|
(lambda (n)
|
|
(number->string (+ (- n) 1) base))
|
|
(reverse (list-n 30)))))
|
|
|
|
(test5 2)
|
|
(test5 3)
|
|
(test5 8)
|
|
(test5 10)
|
|
(test5 12)
|
|
(test5 16)
|
|
|
|
|