Implement a better filter function
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 1 May 2017 20:17:22 +0000 (22:17 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 1 May 2017 20:17:22 +0000 (22:17 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
exercices/lists.lsp

index 1facea2e83233b8bdd14f76061bb548ad2031483..e97d74796833b3869973bd155c33bb1b69a650d4 100755 (executable)
 (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")
-(println (removeC A L1))
-;escape character in newLISP?
-(println (removeC \? 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 L1 L2 ?))
 
 (exit)