(define (aplatir L)
(cond
- ((null? L) nil)
- ((atom? L) (list L)) ;FIXME: the "casting" is not working properly
+ ((null? L) '())
+ ((atom? L) (list L))
((append (aplatir (first L)) (aplatir (rest L))))))
(println "aplatir/flat")
-;(println (aplatir T))
+(println (aplatir T))
(println (flat T))
;(trace nil)
((append
;the pivot is the first element of the list
(qsort (list< (first L) (rest L)))
- (cons (first L) '())
+ (list (first L))
(qsort (list>= (first L) (rest L)))))))
(println "qsort")
(println (qsort C))
((and (inclu L1 L2) (inclu L2 L1) true))))
(println "filtre")
(println (filtre L1 L2 ?))
+(println (filtre L M ?))
+
+;algorithm written on the board
+(define (filtrerec L1 L2 C)
+ ;FIXME: use the function argument C
+ (cond
+ ((null? L1)
+ (cond
+ ((null? L2) true)
+ ((= '? (first L2)) (filtrerec L1 (rest L2)))
+ (nil)))
+ ((null? L2) (filtrerec L2 L1))
+ ((= '? (first L1)) (filtrerec (rest L1) L2))
+ ((= '? (first L2)) (filtrerec L1 (rest L2)))
+ ((= (first L1) (first L2)) (filtrerec (rest L1) (rest L2)) )
+ (nil)))
+(println "filtrerec")
+(println (filtrerec L1 L2 ?))
+(println (filtrerec L M ?))
(exit)