3 (setq L '(1 9 3 7 0 5))
4 (setq M '(2 6 5 4 0 1 3))
6 (define (mem E L) ;la function mem a 2 arguments
8 (if (= (first L) E) true
10 (println "mem rt bool")
13 (define (boolmemrec E L)
16 ((= (first L) E) true)
18 (println "mem rec rt bool")
19 (println (boolmemrec 10 L))
21 (define (mem E L) ;la function mem a 2 arguments
25 (println "mem rt list")
33 (println "mem rec rt list")
35 (println (member 9 L))
37 (println (member 8 L))
39 (define (concatene L1 L2)
41 (cons (first L1) (concatene (rest L1) L2))))
42 (println "concatene/append")
43 (setq C (concatene L M))
45 (println (append L M))
53 ((+ 1 (rang E (rest L)))))
67 ((cons (first L) (tete (- N 1) (rest L))))))
68 (println "tete/slice")
70 (println (slice L 0 3))
73 (define (intersectL L1 L2)
76 ((member (first L1) L2) (cons (first L1) (intersectL (rest L1) L2)))
77 ((intersectL (rest L1) L2))))
78 (println "intersectL/intersect")
79 (println (intersectL L M))
80 (println (intersect L M))
87 ((= (first L1) (first L2)) (inclu (rest L1) (rest L2)))
88 ((inclu L1 (rest L2)))))
92 ;did not found a newlisp builtin equivalent function
94 (define (unionE L1 L2)
97 ((member (first L1) L2) (unionE (rest L1) L2))
98 ((cons (first L1) (unionE (rest L1) L2)))))
99 (println "unionE/union")
100 (println (unionE L M))
101 (println (unionE N L))
102 (println (union N L))
106 (setq T '(((4)((2 5))((((((6 7)))))))))
111 ((max (+ 1 (prof (first L))) (prof (rest L))))))
123 ((append (aplatir (first L)) (aplatir (rest L))))))
124 (println "aplatir/flat")
125 (println (aplatir T))
133 ((member (first L) (rest L)) (elim (rest L)))
134 ((cons (first L) (elim (rest L))))))
135 (println "elim/unique")
142 ((append (reverseL (rest L)) (list (first L))))))
143 (println "reverseL/reverse")
144 (println (reverseL L))
145 (println (reverse L))
150 ((>= (first L) N) (list< N (rest L)))
151 ((cons (first L) (list< N (rest L))))))
153 (println (list< 5 L))
154 (println (list< 5 C))
159 ((< (first L) N) (list>= N (rest L)))
160 ((cons (first L) (list>= N (rest L))))))
162 (println (list>= 5 C))
170 ;the pivot is the first element of the list
171 (qsort (list< (first L) (rest L)))
173 (qsort (list>= (first L) (rest L)))))))
179 ;we suppose both lists are flat
180 (setq L1 '(A ? ? B C D ?))
181 (setq L2 '(? A B ? C ? ? D))
186 ;the replace function modify the passed argument
187 ;(println (replace 'B L1))
188 ;(println (replace '? L1))
189 ;(println (replace '? L2))
193 (define (filtre L1 L2 C)
194 ;the replace function modify the passed argument
195 ;FIXME: use the function argument C
199 ((and (null? L1) (null? L2)) true)
200 ((and (not (null? L1)) (null? L2)) nil)
201 ((and (null? L1) (not (null? L2))) nil)
202 ((and (inclu L1 L2) (inclu L2 L1) true))))
204 (println (filtre L1 L2 ?))
205 (println (filtre L M ?))
207 ;algorithm written on the board
208 (define (filtrerec L1 L2 C)
209 ;FIXME: use the function argument C
214 ((= '? (first L2)) (filtrerec L1 (rest L2)))
216 ((null? L2) (filtrerec L2 L1))
217 ((= '? (first L1)) (filtrerec (rest L1) L2))
218 ((= '? (first L2)) (filtrerec L1 (rest L2)))
219 ((= (first L1) (first L2)) (filtrerec (rest L1) (rest L2)) )
221 (println "filtrerec")
222 (println (filtrerec L1 L2 ?))
223 (println (filtrerec L M ?))