X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=exercices%2Flists.lsp;h=e97d74796833b3869973bd155c33bb1b69a650d4;hb=d4b2508d9663596624e7f44c701147c27c6cceb2;hp=25360bcf166d051570501485b0e2ed6ddb61c5ca;hpb=f1823b2e26078df70254dca41b2f1e5af4443809;p=TD_LISP.git diff --git a/exercices/lists.lsp b/exercices/lists.lsp index 25360bc..e97d747 100755 --- a/exercices/lists.lsp +++ b/exercices/lists.lsp @@ -46,11 +46,11 @@ ;(trace true) -(define (rang x L) - (if (boolmemrec x L) +(define (rang E L) + (if (boolmemrec E L) (cond - ((= x (first L)) 0) - ((+ 1 (rang x (rest L))))) + ((= E (first L)) 0) + ((+ 1 (rang E (rest L))))) nil)) (println "rang/find") (println (rang 4 L)) @@ -60,11 +60,11 @@ ;(trace nil) -(define (tete n L) +(define (tete N L) (cond ((null? L) '()) - ((= n 0) '()) - ((cons (first L) (tete (- n 1) (rest L)))))) + ((= N 0) '()) + ((cons (first L) (tete (- N 1) (rest L)))))) (println "tete/slice") (println (tete 3 L)) (println (slice L 0 3)) @@ -144,20 +144,20 @@ (println (reverseL L)) (println (reverse L)) -(define (list< n L) +(define (list< N L) (cond ((null? L) '()) - ((>= (first L) n) (list< n (rest L))) - ((cons (first L) (list< n (rest L)))))) + ((>= (first L) N) (list< N (rest L))) + ((cons (first L) (list< N (rest L)))))) (println "list<") (println (list< 5 L)) (println (list< 5 C)) -(define (list>= n L) +(define (list>= N L) (cond ((null? L) '()) - ((< (first L) n) (list>= n (rest L))) - ((cons (first L) (list>= n (rest L)))))) + ((< (first L) N) (list>= N (rest L))) + ((cons (first L) (list>= N (rest L)))))) (println "list>=") (println (list>= 5 C)) @@ -180,20 +180,27 @@ (setq L1 '(A ? ? B C D ?)) (setq L2 '(? A B ? C ? ? D)) -(define (removeC c L) - (cond - ((null? L) '()) - ((= c (first L))) (removeC c (rest L)) - (((cons (first L) (removeC c (rest L))))))) -(println (removeC A L1)) +;(println "replace") +;(println L1) +;(println L2) +;the replace function modify the passed argument +;(println (replace 'B L1)) +;(println (replace '? L1)) +;(println (replace '? L2)) +;(println L1) +;(println L2) (define (filtre L1 L2 C) + ;the replace function modify the passed argument + ;FIXME: use the function argument C + (replace '? L1) + (replace '? L2) (cond ((and (null? L1) (null? L2)) true) ((and (not (null? L1)) (null? L2)) nil) ((and (null? L1) (not (null? L2))) nil) ((and (inclu L1 L2) (inclu L2 L1) true)))) -;(println "filtre") -;(println (filtre L1 L2 ?)) +(println "filtre") +(println (filtre L1 L2 ?)) (exit)