From dab37a844b3fead9a85571f96d5b812d27546781 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 17 Dec 2016 14:44:34 +0100 Subject: [PATCH] Add list-head, list-tail. * module/mes/scm (list-head, list-tail): New function. --- module/mes/scm.mes | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/module/mes/scm.mes b/module/mes/scm.mes index 2ac9180e..1b179147 100644 --- a/module/mes/scm.mes +++ b/module/mes/scm.mes @@ -32,6 +32,14 @@ (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)))