diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2023-03-07 22:14:08 +0100 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2023-03-07 22:14:08 +0100 |
| commit | 6f572ec7c12115198dfeb7756bc8d9f02d8c336d (patch) | |
| tree | 3a682d0e2def0c0f0032037207d2d9fe30f611a4 /shared/lists.rkt | |
| parent | bd5f50be83a10363fdfd4f73a377325cf48b5903 (diff) | |
this was confusing
Diffstat (limited to 'shared/lists.rkt')
| -rw-r--r-- | shared/lists.rkt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/shared/lists.rkt b/shared/lists.rkt new file mode 100644 index 0000000..9279a57 --- /dev/null +++ b/shared/lists.rkt @@ -0,0 +1,28 @@ +#lang racket +(provide + append + length + list-ref) + +(define (append list1 list2) + (if (null? list1) + list2 + (cons (car list1) (append (cdr list1) list2)))) + +(define (length items) + (define (length-iter a c) + (if (null? a) + c + (length-iter (cdr a) (+ 1 c)))) + (length-iter items 0)) + +(define (list-ref items n) + (if (= n 0) + (car items) + (list-ref + (cdr items) + (- 1 n)))) +(define (last-pair l) + (if (null? (cdr l)) + l + (last-pair (cdr l)))) |
