WXME0107 ## wxtextwxtabwxmediawximage"(lib "syntax-browser.ss" "mrlib")drscheme:number$(lib "comment-snip.ss" "framework")+(lib "collapsed-snipclass.ss" "framework")drscheme:sexp-snip!(lib "bullet-snip.ss" "browser")drscheme:bindings-snipclass%$(lib "cache-image-snip.ss" "mrlib")drscheme:lambda-snip%java-comment-box%java-interactions-box%-(lib "image-snipr.ss" "slideshow" "private")drscheme:pict-value-snip%&(lib "pict-snipclass.ss" "slideshow")"drscheme:vertical-separator-snip%wxbaddrscheme:xml-snip(lib "xml-snipclass.ss" "xml")drscheme:scheme-snip"(lib "scheme-snipclass.ss" "xml")make-line-snipmake-line-sniptest-case-box% text-box%wxloc\K ZÁÿZÁÿÁÿ€ÿ€ÿ€ÿÁÿ StandardK Courier New ZÁÿZÁÿÁÿ€ÿ€ÿ€ÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿframework:default-colorÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿÁÿ?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿMatching Parenthesis StyleÁÿ?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð&&€€ÁÿÁÿ(framework:syntax-coloring:scheme:symbolÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð&&€€ÁÿÁÿ)framework:syntax-coloring:scheme:keywordÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð&&€€ÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÂtÁÿÁÿ)framework:syntax-coloring:scheme:commentÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÂtÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð)€€&ÁÿÁÿ(framework:syntax-coloring:scheme:stringÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð)€€&ÁÿÁÿ*framework:syntax-coloring:scheme:constantÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð)€€&ÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€„<$ÁÿÁÿ-framework:syntax-coloring:scheme:parenthesisÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€„<$ÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿ'framework:syntax-coloring:scheme:errorÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðÁÿÁÿ'framework:syntax-coloring:scheme:otherÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðQp€ËÁÿÁÿ1drscheme:check-syntax:lexically-bound-identifierÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðQp€ËÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðD€ËÁÿÁÿ*drscheme:check-syntax:imported-identifierÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðD€ËÁÿÁÿ%profj:syntax-coloring:scheme:keywordÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿ$profj:syntax-coloring:scheme:stringÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿ%profj:syntax-coloring:scheme:literalÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿ%profj:syntax-coloring:scheme:commentÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÂtÁÿÁÿ#profj:syntax-coloring:scheme:errorÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿ(profj:syntax-coloring:scheme:identifierÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð&&€€ÁÿÁÿ%profj:syntax-coloring:scheme:defaultÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðÁÿÁÿF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿXMLF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€–€–ÁÿÁÿÁÿ?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€¯ÁÿÁÿG?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿG?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿG?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðdÁÿÁÿK Courier New ZÁÿZÁÿÁÿ€ÿ€ÿ€ÿÁÿF@\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ðÁþÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ðÁþÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð2€Í2ÁÿÁÿF?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ø\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ø\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€²""ÁÿÁÿF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿK?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF@\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ø\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿF?ó333333\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?ó333333\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿK?ó333333\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€„<$ÁÿÁÿK?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€™ÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð$$€ŒÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿK?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€„<$ÁÿÁÿK?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿF?é™™™™™šÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿF?ã333334ÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿF?ø\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿÁÿ?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿFVerdana?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿFVerdana?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð?ð?ð?ðÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€Ç€…ÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€Ü<ÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿ€ŒÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿEÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€  €ðÁÿÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ðdÁÿFVerdana?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€‹ÁÿF?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿF?ðÁÿÁÿ]ÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿF?ðÁÿÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿF?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð€ÿÁÿÁÿK?ð\ÁÿÁÿÁÿÁÿÁÿ?ð?ð?ð"€‹"ÁÿÁÿ‡F(require (lib "plt-match.ss")) (require (lib " t r a c e . s s "))  ( define  symbol_ou (string->symbol (string ( integer->char 709)))) ; Ë… ( define  symbol_et (string->symbol (string ( integer->char 708)))) ; Ë„  ( define (m-or op1 op2)  (list op1  symbol_ou op2))  ( define (m-neg op1)  `(¬ ,op1))  ( define (m-and op1 op2)  (list op1  symbol_et op2))  ( define exp1 (m-neg (m-or 'a 'b))) ( define exp2 (m-and 'a 'b)) ( define exp3 (m-neg (m-or exp2 exp1)))  ( define (match-DeMorgan-or? exp)  ( match exp  [(list ¬ (list op1  symbol_ou op2)) #t ]  [_ #f]))  ( define (position-arbre arbre test)  ( define (iter acc pos-cum pos-cur arbre)  ( cond ((null? arbre)  acc)  ((or (symbol? arbre) (number? arbre))  (if (test arbre)  (cons (reverse pos-cum) acc)  acc))  ((and (test arbre) (= pos-cur 0))  ; ;  ( =  pos-cur  0 )  e s t  p o u r  p r e n d r e  l e s s o u s - e x p r e s s i o n s c o m p l è t e  s e u l e m e n t   ( let ((acc (iter (cons (reverse pos-cum) acc) (cons pos-cur pos-cum) 0 (car arbre))))  (iter acc pos-cum (+ pos-cur 1) (cdr arbre))))  (else   ( let ((acc (iter acc (cons pos-cur pos-cum) 0 (car arbre))))  (iter acc pos-cum (+ pos-cur 1) (cdr arbre))))))   (iter '() '() 0 arbre))  ( d ef i n e ( trouve-objet arbre position)  ( c o n d ((null? position)  arbre)  ((= (car position) 0)  (trouve-objet (car arbre) (cdr position)))  (else  ( l e t ((next (- (car position) 1)))  (trouve-objet (cdr arbre) (cons next (cdr position)))))))  ( d e f i n e ( set-arbre! arbre position new-value)  ( c o n d ((null? position)   (error " i m p l a n t e r  s e t - a r b r e  a v e c  l e s  m a c r o "))  ((and (null? (cdr position)) (= (car position) 0))  (set-car! arbre new-value))  ((= (car position) 0)  (set-arbre! (car arbre) (cdr position) new-value))  (else  ( l e t ((next (- (car position) 1)))  (set-arbre! (cdr arbre) (cons next (cdr position)) new-value)))))  ( d e f i n e ( set-arbre arbre position new-value)  ; ;  v e r s i o n   non destru c t i v e    ( d e f i n e (interne avant position après)  ( c o n d ((and (null? (cdr position)) (= (car position) 0))  (append avant (cons  new-value après)))  ((= (car position) 0)  (append avant (cons (set-arbre (car arbre) (cdr position) new-value)) après))  (else  ( l e t ((next (- (car position) 1)))  (interne (append avant (list (car arbre)))  next  (cdr arbre))))))  (if (null? position) new-value  (interne '() position arbre)))      ( define  arbre-test0 '(1 2 (3 (4 * 1) 5 (2 3) (6 7 8 *) 4) 7 9))  ( define  arbre-test1 '(1 2 (3 (* 6 1) 5 (2 3) (* 7 8 7) 4) 7 9))  ( define  arbre-test2 '(0 1 * 3 4 * 6 7 * 9))    (map ( lambda (x) ( trouve-objet  arbre-test0 x))  (position-arbre  arbre-test0 ( lambda (x) (and (pair? x) (eq? (car x) '*)))))    (map ( lambda (x) ( trouve-objet  arbre-test1 x))  (position-arbre  arbre-test1 ( lambda (x) (and (pair? x) (eq? (car x) '*)))))    (map ( lambda (x) ( trouve-objet  arbre-test2 x))  (position-arbre  arbre-test2 ( lambda (x) (eq? x '*))))    (position-arbre  arbre-test1 ( lambda (x) (and (pair? x) (eq? (car x) '*))))   arbre-test1  ( set-arbre!  arbre-test1 '(2 4) '(+ + +))   arbre-test1    (position-arbre  arbre-test2 ( lambda (x) (eq? x '*)))  ( set-arbre  arbre-test2 '(2) '+)   arbre-test2    h(match-DeMorgan-or? exp3)  (position-arbre exp3 match-DeMorgan-or?)  (map ( lambda (x) ( trouve-objet exp3 x))  (position-arbre exp3 match-DeMorgan-or?)) '(¬ ((a Ë„ b) Ë… (¬ (a Ë… b))))  '((¬ (a Ë… b)) (¬ ((a Ë„ b) Ë… (¬ (a Ë… b)))    ;(do ((i 0 (+ i 1)))   ; ((= i 4096))    ; (newline)   ; (display i) (display "   ") (display (integer->char i)))