Gambit Version 3.0 > (+ 5 8) 13 > (cons 5 8) (5 . 8) > 5 5 > "bonjour" "bonjour" > #\a #\a > '(1 2 3) (1 2 3) > '() () > (1 2 3) *** ERROR -- Operator is not a PROCEDURE (1 2 3) 1> > '#(1 2 3 4 5) #(1 2 3 4 5) > #(1 2 3 4 5) *** ERROR IN (stdin)@11.1 -- Ill-formed expression > '(1 . 2) (1 . 2) > '(1 2) (1 2) > (car '(1 . 2)) 1 > (car '(1 2)) 1 > (cdr '(1 . 2)) 2 > (cdr '(1 2)) (2) > '5 5 > 5 5 > (quote 5) 5 > '(quote 5) '5 > ''5 '5 > (list 1 2 3) (1 2 3) > (string-ref "bonjour" 3) #\j > (lambda (x) x) # > (vector 1 2 3) #(1 2 3) > '#(1 2 3) #(1 2 3) > (list-ref '(0 1 2 3 4 5) 3) 3 > (list-ref '(10 11 12 13 14 15) 3) 13 > (vector-ref '#(10 11 12) 0) 10 > (define v (vector 10 11 12)) > v #(10 11 12) > (vector-set! v 2 27) > v #(10 11 27) > (vector-set! v 2 v) > (char->integer #\A) 65 > (gcd 27 12) 3 > (char? #\A) #t > (char? 65) #f > (pair? '(1 2)) #t > (pair? '(1)) #t > (pair? '()) #f > (list? '(1 2)) #t > (list? '(1)) #t > (list? '()) #t > (boolean? (pair? '())) #t > (define x 52) > (set! x (- x 10)) > x 42 > (if (vector? v) "oui" "non") "oui" > (vector? '#(1 2)) #t > (vector? '#(1)) #t > (vector? '#()) #t > '(if (vector? v) "oui" "non") (if (vector? v) "oui" "non") > (list? '(if (vector? v) "oui" "non")) #t > (list-ref '(if (vector? v) "oui" "non") 2) "oui" > (string? (list-ref '(if (vector? v) "oui" "non") 2)) #t > (list-ref '(if (vector? v) "oui" "non") 1) (vector? v) > (list? (list-ref '(if (vector? v) "oui" "non") 1)) #t > (list-ref '(if (vector? v) "oui" "non") 0) if > (symbol? (list-ref '(if (vector? v) "oui" "non") 0)) #t > 'bonsoir bonsoir > bonsoir *** ERROR IN (stdin)@63.1 -- Unbound variable: bonsoir 1> > (define bonsoir 18) > bonsoir 18 > (string->symbol "xyz") xyz > (symbol->string 'xyz) "xyz" > (if (= 5 2) (display "ksjcijs")) > (if (= 5 2) (display "ksjcijs") 34) 34 > (let ((x 34)) (* 2 x)) 68 > x 42 > (let ((x 34)) (let ((x 7)) (* 2 x))) 14 > (let ((a 1) (b 4) (c 7)) (+ a b c)) 12 > a *** ERROR IN (stdin)@75.1 -- Unbound variable: a 1> > (let ((w (+ x 12)) (x (+ x 2))) (list w x)) (54 44) > x 42 > (set! x -2) > x -2 > (set! x 42) > x 42 > (let ((x 12)) (set! x 13)) > x 42 > (let ((x (+ x 2)) (w (+ x 12))) (list w x)) (54 44) > (let* ((x (+ x 2)) (w (+ x 12))) (list w x)) (56 44) > (let* ((x (+ x 2)) (x (+ x 2))) x) 46 > (letrec ((f (lambda () g)) (g 12)) (list f g)) (# 12) > (letrec ((f (lambda () g)) (g 12)) f) # > (procedure? (letrec ((f (lambda () g)) (g 12)) f)) #t > ((letrec ((f (lambda () g)) (g 12)) f)) 12 > (letrec ((odd? (lambda (n) (if (= n 0) #f (even? (- n 1))))) (even? (lambda (n) (if (= n 0) #t (odd? (- n 1)))))) (even? 36)) #t > (letrec ((odd? (lambda (n) (if (= n 0) #f (even? (- n 1))))) (even? (lambda (n) (if (= n 0) #t (odd? (- n 1)))))) (odd? 36)) #f > (letrec ((fib (lambda (n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))))))) (fib 13)) 233 > (let* ((odd? (lambda (n) (if (= n 0) #f (even? (- n 1))))) (even? (lambda (n) (if (= n 0) #t (odd? (- n 1)))))) (even? 0)) #t > (let* ((odd? (lambda (n) (if (= n 0) #f (even? (- n 1))))) (even? (lambda (n) (if (= n 0) #t (odd? (- n 1)))))) (even? 1)) #f > (let* ((odd? (lambda (n) (if (= n 0) #f (even? (- n 1))))) (even? (lambda (n) (if (= n 0) #t (odd? (- n 1)))))) (even? 2)) #t > even? # > (let* ((o? (lambda (n) (if (= n 0) #f (e? (- n 1))))) (e? (lambda (n) (if (= n 0) #t (o? (- n 1)))))) (e? 0)) #t > (let* ((o? (lambda (n) (if (= n 0) #f (e? (- n 1))))) (e? (lambda (n) (if (= n 0) #t (o? (- n 1)))))) (e? 1)) #f > (let* ((o? (lambda (n) (if (= n 0) #f (e? (- n 1))))) (e? (lambda (n) (if (= n 0) #t (o? (- n 1)))))) (e? 2)) *** ERROR IN #, (stdin)@119.40 -- Unbound variable: e? 1> > (letrec ((x 12) (y (car lst)) (lst (cons x '()))) (list x y lst)) *** ERROR IN (stdin)@124.8 -- PAIR expected (car '#) 1> > ((letrec ((f (lambda () g)) (g 12)) f)) 12 > (letrec ((x 12) (y (car lst)) (lst (cons x '()))) (list x y lst)) *** ERROR IN (stdin)@130.8 -- PAIR expected (car '#) 1> > (letrec ((f (lambda () g)) (g 12)) f) # > (let fact ((n 12)) (if (= n 0) 1 (* n (fact (- n 1))))) 479001600 > (letrec ((fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))) (fact 12)) 479001600 > (letrec ((y (lambda () ((list-ref x 1)))) (x (list 1 (lambda () 12345) 3))) (list x y)) ((1 # 3) #) > (letrec ((y (lambda () ((list-ref x 1)))) (x (list 1 (lambda () y) 3))) (list x y)) ((1 # 3) #) > (begin (set! x 512) (display "Fait!") (newline) 'done) Fait! done > (begin 1) 1 > (begin) > ((lambda (x y z . rst) (list x y z rst)) 1 2 3 4 5 6 7) (1 2 3 (4 5 6 7)) > ((lambda (x y . rst) (list x y rst)) 1 2 3 4 5 6 7) (1 2 (3 4 5 6 7)) > ((lambda (x . rst) (list x rst)) 1 2 3 4 5 6 7) (1 (2 3 4 5 6 7)) > ((lambda rst (list rst)) 1 2 3 4 5 6 7) ((1 2 3 4 5 6 7)) > (define fib (lambda (n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2)))))) > (fib 4) 3 > (fib 5) 5 > (fib 6) 8 > (define (fib n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))))) > x 512 > (cond ((< x 0) 'ppz) ((= x 0) 'z) ((<= x 1000) 'ptg) (else 'tg)) ptg > (and (not (zero? x)) (/ 1024 x)) 2 > (set! x 0) > (and (not (zero? x)) (/ 1024 x)) #f > (or (char? #\a) (/ 58 0)) #t > (or) #f > (= (- 1 1) x) #t > (eq? 1 1) #t > (define w '(1 2 3 4)) > (eq? w w) #t > (eq? (list 1 2 3 4) (list 1 2 3 4)) #f > fact *** ERROR IN (stdin)@184.1 -- Unbound variable: fact 1> > (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1)))))) > (fact 10) 3628800 > (fact 100) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 > (eq? (fact 100) (fact 100)) #f > (eqv? (fact 100) (fact 100)) #t > (eqv? (list 1 2 3 4) (list 1 2 3 4)) #f > (equal? (list 1 2 3 4) (list 1 2 3 4)) #t > (define lst (list 1 2 3 4)) > (define v1 (vector lst 4 lst)) > (define v2 (vector lst (+ 2 2) (list 1 2 3 4))) > (equal? v1 v2) #t > (define v3 (vector 1 2 3 4)) > (vector-set! v3 3 v3) > (define v4 (vector 1 2 3 4)) > (vector-set! v4 3 v4) > (eq? v3 v4) #f > (eqv? v3 v4) #f > (equal? v3 v4) C-c C-c*** INTERRUPTED IN ##equal? 1> > (eq? v3 v3) #t > (eqv? v3 v3) #t > (equal? v3 v3) C-c C-c*** INTERRUPTED IN ##equal? 1>