(display 'ref)
(newline)
(display (memq 3 '(1 2 3 4 5)))
(newline)
(display (string-ref "12345" 2))
(newline)
(display (string-length "12345"))
(newline)
(display (list-ref '(a b c) 1))
(newline)
(display (eq? 1 1))
(newline)
(display (= 1 1))
(newline)
(display (eq? 1 2))
(newline)
(display (= 1 2))
(newline)
(display (make-vector 3))
(newline)
(display (vector-length (make-vector 3)))
(newline)
(display (vector-ref '#(a b c) 1))
(newline)
(define v (make-vector 1))
(vector-set! v 0 'ref)
(display (vector-ref v 0))
(newline)
(display (vector? v))
(newline)
(display (not #t))
(newline)
(display (equal? '(a (b) c) '(a (b) c)))
(newline)
(display (pair? '()))
(newline)
(display (pair? 'a))
(newline)
(display (pair? '(a)))
(newline)
(display (positive? 1))
(newline)
(display (positive? -1))
(newline)
(display (list 'a 'b 'c))
(newline)
(display (remainder 10 7))
(newline)
(display (zero? 0))
(newline)
(display (zero? 1))
(newline)
(display (length '(a b c)))
(newline)
(display (list-tail '(a b c) 1))
(newline)
(display (number? 1))
(newline)
(display (number? 'a))
(newline)
(display (negative? 1))
(newline)
(display (negative? -1))
(newline)
(display (abs -1))
(newline)
(display (boolean? 1))
(newline)
(display (boolean? #f))
(newline)
(write (number->string 100))
(newline)
(display (string->number "100"))
(newline)
(display (list? '(a b c)))
(newline)
(display (list? '()))
(newline)
(display (list? '(a . b)))
(newline)
(display (member (list 'a) '(b (a) c)))
(newline)
(display (symbol? 'foo))
(newline)
(display (symbol? #f))
(newline)
(display (symbol? '()))
(newline)
(display (symbol->string 'symbol))
(newline)
(display (string->symbol "symbol"))
(newline)
(display (char? #\a))
(newline)
(display (char? #f))
(newline)
(display (char? 'a))
(newline)
(display (char=? #\a #\a))
(newline)
(display (char=? #\a #\b))
(newline)
(display (char-alphabetic? #\a))
(newline)
(display (char-alphabetic? #\0))
(newline)
(display (char-numeric? #\a))
(newline)
(display (char-numeric? #\0))
(newline)
(display (char-upcase #\a))
(newline)
(display (char-upcase #\A))
(newline)
(display (char-downcase #\a))
(newline)
(display (char-downcase #\A))
(newline)
(display (string? "xxx"))
(newline)
(display (make-string 3 #\space))
(newline)
(write "   ")
(newline)
(display (string-length "xxx"))
(newline)
(display (string-ref "xyz" 1))
(newline)
(define s (make-string 3))
(string-set! s 1 #\x)
(display (string-ref s 1))
(newline)
(display (string=? s " x "))
(newline)
(display (string=? s "xyz"))
(newline)
(write (substring s 0 2))
(newline)
(display (string->list "abc"))
(newline)
(write (list->string '(#\a #\b #\c)))
(newline)
(write (string-copy "abc"))
(newline)
(write (string-fill! s #\x))
(newline)
(display (procedure? car))
(newline)
(display (procedure? 'car))
(newline)
(display (procedure? (lambda (x) x)))
(newline)

(display (append '(a) '(b c) ' (d e f) '(g)))
(newline)
(display (reverse '(a b c d e f g)))
(newline)
(write (string-append "abc" "xyz"))
(newline)
(display (assoc (list 'a) '(((a)) ((b)) ((c)))))
(newline)
(display (map cadr '((a b) (d e) (g h))))
(newline)
(display (map + '(1 2 3) '(4 5 6)))
(newline)
(display (map list '(a b c d)))
(newline)
(display (map car '((a) (b) (c) (d) (e))))
(newline)
(define (test)
  (let
    ((v (make-vector 5)))
    (for-each
      (lambda (i)
        (vector-set! v i (* i i)))
      '(0 1 2 3 4))
    v))
(display (test))
(newline)
(for-each
  (lambda (x)
    (display x)
    (newline))
  '(a b c))
(newline)
(for-each
  (lambda (x y)
    (display x)
    (display y)
    (newline))
  '(a b c)
  '(d e f))
(newline)
(display (eqv? 'a 'a))
(newline)
(display (eqv? 'a 'b))
(newline)
(display (eqv? 2 2))
(newline)
(display (eqv? 2 3))
(newline)
(display (eqv? (cons 1 2) (cons 1 2)))
(newline)
(display (eqv? '() '()))
(newline)
(display (let ((p (lambda (x) x))) (eqv? p p)))
(newline)
(display (let ((x '(a))) (eqv? x x)))
(newline)
(display (eqv? (lambda () 1) (lambda () 2)))
(newline)
(display (integer? 1))
(newline)
(display (+))
(newline)
(display (+ 3))
(newline)
(display (-))
(newline)
(display (- 1))
(newline)
(display (- 0 1))
(newline)
(display (- 3 4 5))
(newline)
(display (*))
(newline)
(display (* 3))
(newline)
(display (/))
(newline)
(display (remainder 13 4))
(newline)
(display (modulo 13 4))
(newline)
(display (remainder -13 4))
(newline)
(display (modulo -13 4))
(newline)
(display (remainder 13 -4))
(newline)
(display (modulo 13 -4))
(newline)
(display (remainder -13 -4))
(newline)
(display (modulo -13 -4))
(newline)
(display (quotient 13 4))
(newline)
(display (min 1 2))
(newline)
(display (max 1 2 3 7 4 5))
(newline)
  (let ((x '(1 3 5 7 9)))
     (do ((x x (cdr x))
         (sum 0 (+ sum (car x))))
         ((null? x) sum)))
  (do ((vec (make-vector 5))
       (i 0 (+ i 1)))
      ((= i 5) vec)
    (vector-set! vec i i))
