#!/usr/bin/env newlisp (setq L '(1 9 3 7 0 5)) (setq M '(2 6 5 4 0 1 3)) (define (mem E L) ;la function mem a 2 arguments (if (null? L) nil (if (= (first L) E) true (mem E (rest L))))) (println (mem 9 L)) (define (boolmemrec E L) (cond ((null? L) nil) ((= (first L) E) true) ((mem E (rest L))))) (println (boolmemrec 10 L)) (define (mem E L) ;la function mem a 2 arguments (if (null? L) nil (if (= (first L) E) L (mem E (rest L))))) (println (mem 3 L)) (define (mem E L) (cond ((null? L) nil) ((= (first L) E) L) ((mem E (rest L))))) (println (mem 9 L)) (println (member 9 L)) (println (mem 8 L)) (println (member 8 L)) (define (concatene L1 L2) (if (null? L1) L2 (cons (first L1) (concatene (rest L1) L2)))) (println (concatene L M)) (println (append L M)) ;(trace true) (define (rang x L) (if (boolmemrec x L) (cond ((= x (first L)) 0) ((+ 1 (rang x (rest L))))) nil)) (println (rang 4 L)) (println (find 4 L)) (println (rang 0 L)) (println (find 0 L)) ;(trace nil) (define (tete n L) (cond ((null? L) nil) ((= n 0) nil) ((cons (first L) (tete (- n 1) (rest L)))))) ;FIXME: return nil after the first n elements in the list (println (tete 3 L)) (println (slice L 0 3)) (println (0 3 L)) (define (inter L1 L2) (cond ((null? L1) nil) ((member (first L1) L2) (cons (first L1) (inter (rest L1) L2))) ((inter (rest L1) L2)))) ;FIXME: return nil after ... (println (inter L M)) (println (intersect L M)) (setq N '(1 9 3)) (define (inclu L1 L2) (cond ((null? L1) true) ((null? L2) nil) ((= (first L1) (first L2)) (inclu (rest L1) (rest L2))) ((inclu L1 (rest L2))))) (println (inclu N L)) (println (inclu L M)) ;did not found a newlisp builtin equivalent function (exit)