; length
(define (len xs)
(if (null? xs)
0
(+ 1 (len (cdr xs)))))
(display (len '(a b c d e f g))) (newline)
(define (len-aux xs n)
(if (null? xs)
n
(len-aux (cdr xs) (+ n 1))))
(define (len xs)
(len-aux xs 0))
(display (len '(a b c d e f g))) (newline)
(define (len xs)
(let loop ((xs xs) (n 0))
(if (null? xs)
n
(loop (cdr xs) (+ n 1)))))
(display (len '(a b c d e f g))) (newline)
(define (shorter? xs ys)
(cond ((null? ys) #f)
((null? xs) #t)
(else (shorter? (cdr xs) (cdr ys)))))
(display (shorter? '(a b c d e f g) '(h i j k l m n o p))) (newline)
OyBsZW5ndGgKCihkZWZpbmUgKGxlbiB4cykKICAoaWYgKG51bGw/IHhzKQogICAgICAwCiAgICAgICgrIDEgKGxlbiAoY2RyIHhzKSkpKSkKCihkaXNwbGF5IChsZW4gJyhhIGIgYyBkIGUgZiBnKSkpIChuZXdsaW5lKQoKKGRlZmluZSAobGVuLWF1eCB4cyBuKQogIChpZiAobnVsbD8geHMpCiAgICAgIG4KICAgICAgKGxlbi1hdXggKGNkciB4cykgKCsgbiAxKSkpKQoKKGRlZmluZSAobGVuIHhzKQogIChsZW4tYXV4IHhzIDApKQoKKGRpc3BsYXkgKGxlbiAnKGEgYiBjIGQgZSBmIGcpKSkgKG5ld2xpbmUpCgooZGVmaW5lIChsZW4geHMpCiAgKGxldCBsb29wICgoeHMgeHMpIChuIDApKQogICAgKGlmIChudWxsPyB4cykKICAgICAgICBuCiAgICAgICAgKGxvb3AgKGNkciB4cykgKCsgbiAxKSkpKSkKCihkaXNwbGF5IChsZW4gJyhhIGIgYyBkIGUgZiBnKSkpIChuZXdsaW5lKQoKKGRlZmluZSAoc2hvcnRlcj8geHMgeXMpCiAgKGNvbmQgKChudWxsPyB5cykgI2YpCiAgICAgICAgKChudWxsPyB4cykgI3QpCiAgICAgICAgKGVsc2UgKHNob3J0ZXI/IChjZHIgeHMpIChjZHIgeXMpKSkpKQoKKGRpc3BsYXkgKHNob3J0ZXI/ICcoYSBiIGMgZCBlIGYgZykgJyhoIGkgaiBrIGwgbSBuIG8gcCkpKSAobmV3bGluZSk=