; list homework
(define (len xs)
(if (null? xs) 0
(+ (len (cdr xs)) 1)))
(display (len '(1 2 3 4 5))) (newline)
(define (len-aux xs len)
(if (null? xs) len
(len-aux (cdr xs) (+ len 1))))
(define (len xs) (len-aux xs 0))
(display (len '(1 2 3 4 5))) (newline)
(define (rev-aux xs zs)
(if (null? xs) zs
(rev-aux (cdr xs) (cons (car xs) zs))))
(define (rev xs) (rev-aux xs '()))
(display (rev '(1 2 3 4 5))) (newline)
OyBsaXN0IGhvbWV3b3JrCgooZGVmaW5lIChsZW4geHMpCiAgKGlmIChudWxsPyB4cykgMAogICAgKCsgKGxlbiAoY2RyIHhzKSkgMSkpKQoKKGRpc3BsYXkgKGxlbiAnKDEgMiAzIDQgNSkpKSAobmV3bGluZSkKCihkZWZpbmUgKGxlbi1hdXggeHMgbGVuKQogIChpZiAobnVsbD8geHMpIGxlbgogICAgKGxlbi1hdXggKGNkciB4cykgKCsgbGVuIDEpKSkpCgooZGVmaW5lIChsZW4geHMpIChsZW4tYXV4IHhzIDApKQoKKGRpc3BsYXkgKGxlbiAnKDEgMiAzIDQgNSkpKSAobmV3bGluZSkKCihkZWZpbmUgKHJldi1hdXggeHMgenMpCiAgKGlmIChudWxsPyB4cykgenMKICAgIChyZXYtYXV4IChjZHIgeHMpIChjb25zIChjYXIgeHMpIHpzKSkpKQoKKGRlZmluZSAocmV2IHhzKSAocmV2LWF1eCB4cyAnKCkpKQoKKGRpc3BsYXkgKHJldiAnKDEgMiAzIDQgNSkpKSAobmV3bGluZSk=