Commit | Line | Data |
---|---|---|
72128279 JB |
1 | #!/usr/bin/env newlisp |
2 | ||
3 | (setq L '(1 9 3 7 0 5)) | |
4 | (setq M '(2 6 5 4 0 1 3)) | |
5 | ||
6 | (define (mem E L) ;la function mem a 2 arguments | |
7 | (if (null? L) nil | |
8 | (if (= (first L) E) true | |
9 | (mem E (rest L))))) | |
10 | (println (mem 9 L)) | |
11 | ||
12 | (define (boolmemrec E L) | |
13 | (cond | |
14 | ((null? L) nil) | |
15 | ((= (first L) E) true) | |
16 | ((mem E (rest L))))) | |
17 | (println (boolmemrec 10 L)) | |
18 | ||
19 | (define (mem E L) ;la function mem a 2 arguments | |
20 | (if (null? L) nil | |
21 | (if (= (first L) E) L | |
22 | (mem E (rest L))))) | |
23 | (println (mem 3 L)) | |
24 | ||
25 | (define (mem E L) | |
26 | (cond | |
27 | ((null? L) nil) | |
28 | ((= (first L) E) L) | |
29 | ((mem E (rest L))))) | |
30 | (println (mem 9 L)) | |
31 | (println (member 9 L)) | |
32 | (println (mem 8 L)) | |
33 | (println (member 8 L)) | |
34 | ||
35 | (define (concatene L1 L2) | |
36 | (if (null? L1) L2 | |
37 | (cons (first L1) (concatene (rest L1) L2)))) | |
38 | (println (concatene L M)) | |
39 | (println (append L M)) | |
40 | ||
41 | ;(trace true) | |
42 | ||
43 | (define (rang x L) | |
44 | (if (boolmemrec x L) | |
45 | (cond | |
46 | ((= x (first L)) 0) | |
47 | ((+ 1 (rang x (rest L))))) | |
48 | nil)) | |
49 | (println (rang 4 L)) | |
50 | (println (find 4 L)) | |
51 | (println (rang 0 L)) | |
52 | (println (find 0 L)) | |
53 | ||
54 | ;(trace nil) | |
55 | ||
56 | (define (tete n L) | |
57 | (cond | |
58 | ((null? L) nil) | |
59 | ((= n 0) nil) | |
60 | ((cons (first L) (tete (- n 1) (rest L)))))) | |
61 | ;FIXME: return nil after the first n elements in the list | |
62 | (println (tete 3 L)) | |
63 | (println (slice L 0 3)) | |
64 | (println (0 3 L)) | |
65 | ||
66 | (define (inter L1 L2) | |
67 | (cond | |
68 | ((null? L1) nil) | |
69 | ((member (first L1) L2) (cons (first L1) (inter (rest L1) L2))) | |
70 | ((inter (rest L1) L2)))) | |
71 | ;FIXME: return nil after ... | |
72 | (println (inter L M)) | |
73 | (println (intersect L M)) | |
74 | ||
75 | (setq N '(1 9 3)) | |
76 | (define (inclu L1 L2) | |
77 | (cond | |
78 | ((null? L1) true) | |
79 | ((null? L2) nil) | |
80 | ((= (first L1) (first L2)) (inclu (rest L1) (rest L2))) | |
81 | ((inclu L1 (rest L2))))) | |
82 | (println (inclu N L)) | |
83 | (println (inclu L M)) | |
84 | ;did not found a newlisp builtin equivalent function | |
85 | ||
86 | (exit) |