#lang s-exp "../../lang/base.rkt" (require "testing.rkt") (require (for-syntax racket/base)) (test (list 1 2 3 4) foldl cons '() (list 4 3 2 1)) (test (list 1 2 3 4) foldr cons '() (list 1 2 3 4)) (test (list (list 5 6) (list 3 4) (list 1 2)) foldl (lambda (x y sofar) (cons (list x y) sofar)) '() (list 1 3 5) (list 2 4 6)) (test (list (list 1 2) (list 3 4) (list 5 6)) foldr (lambda (x y sofar) (cons (list x y) sofar)) '() (list 1 3 5) (list 2 4 6)) (arity-test foldl 3 -1) (arity-test foldr 3 -1) (err/rt-test (foldl 'list 0 10)) (err/rt-test (foldl list 0 10)) (err/rt-test (foldl add1 0 '())) (err/rt-test (foldl cons 0 '() '())) (err/rt-test (foldl list 0 '() 10)) (err/rt-test (foldl list 0 '() '() 10)) (err/rt-test (let/cc k (foldl k 0 '(1 2) '(1 2 3)))) (err/rt-test (let/cc k (foldl k 0 '(1 2) '(1 2) '(1 2 3)))) (err/rt-test (foldr 'list 0 10)) (err/rt-test (foldr list 0 10)) (err/rt-test (foldr add1 0 '())) (err/rt-test (foldr cons 0 '() '())) (err/rt-test (foldr list 0 '() 10)) (err/rt-test (foldr list 0 '() '() 10)) (err/rt-test (let/cc k (foldr k 0 '(1 2) '(1 2 3)))) (err/rt-test (let/cc k (foldr k 0 '(1 2) '(1 2) '(1 2 3)))) (test '(0 1 2) memf add1 '(0 1 2)) (test '(2 (c 17)) memf number? '((a 1) (0 x) (1 w) 2 (c 17))) (test '("ok" (2 .7) c) memf string? '((a 0) (0 a) (1 w) "ok" (2 .7) c)) (err/rt-test (memf cons '((1) (2) (3)))) (err/rt-test (memf string? '((1) (2) (3) . 4)) exn:application:mismatch?) #| dyoo: missing assf (err/rt-test (assf add1 '(0 1 2)) exn:application:mismatch?) (test '(0 x) assf number? '((a 1) (0 x) (1 w) (2 r) (c 17))) (test '("ok" . 10) assf string? '((a 0) (0 a) (1 w) ("ok" . 10) (2 .7) c)) (err/rt-test (assf cons '((1) (2) (3)))) (err/rt-test (assf string? '((1) (2) (3) . 4)) exn:application:mismatch?) |# #| dyoo: missing last ;; ---------- last, last-pair ---------- (let () (test 3 last '(1 2 3)) (test '(3) last-pair '(1 2 3)) (err/rt-test (last '(1 2 3 . 4))) (test '(3 . 4) last-pair '(1 2 3 . 4)) (err/rt-test (last '())) (err/rt-test (last 1)) (err/rt-test (last-pair '())) (err/rt-test (last-pair 1))) |# ;; ---------- sort ---------- (test '("a" "b" "c" "c" "d" "e" "f") sort '("d" "f" "e" "c" "a" "c" "b") string