Add list-head, list-tail.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 17 Dec 2016 13:44:34 +0000 (14:44 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 17 Dec 2016 13:44:34 +0000 (14:44 +0100)
* module/mes/scm (list-head, list-tail): New function.

module/mes/scm.mes

index 2ac9180e8357c76ea50afe979933e209a385b506..1b179147fa75a0e6f01b272492ebbb92befceda9 100644 (file)
 
 (define (list . rest) rest)
 
+(define (list-head x n)
+  (if (= 0 n) '()
+      (cons (car x) (list-head (cdr x) (- n 1)))))
+
+(define (list-tail x n)
+  (if (= 0 n) x
+      (list-tail (cdr x) (- n 1))))
+
 (define-macro (case val . args)
   (if (null? args) #f
       (let ((clause (car args)))