Recursivité et algorithmes de tri dans les listes en Scheme

1/1
100%

; Ex1.1

(de somme (a b)

(cond

((> a b) 0)

(t (+ a (somme (+ 1 a) b)))))

; Ex1.2

(de somme-carres (a b)

Publicité

(cond

((> a b) 0)

(t (+ (\* a a) (somme-carres (+ 1 a) b)))))

; Ex2

(de setnth (l p e)

(cond

((null l) nil)

Publicité

((= p 1) (cons e (cdr l)))

(t (cons (car l) (setnth (cdr l) (1- p) e)))))

; Ex3

(de funsearch (e l)

(mapcar (lambda (sl)

(if (member e sl) (car sl) sl)) l))

; Ex4

Publicité

(dmd foreach (L f test)

`(mapcar (lambda (x) (if (funcall ,test x)

(funcall ,f x))) ,L))

; Ex5

(de ord (A)

(cond

((null A) t)

Publicité

((and (> (car A) (caadr A)) (<= (car A) (caaddr A)))

(and (ord (cadr A))

(ord (caddr A))))

(t nil)))

Recursivité et algorithmes de tri dans les listes en Scheme

Programming, Math, etc. · textbook

Browse all programmation documents

; Ex1.1

(de somme (a b)

(cond

((> a b) 0)

(t (+ a (somme (+ 1 a) b)))))

; Ex1.2

(de somme-carres (a b)

Advertisement

(cond

((> a b) 0)

(t (+ (\* a a) (somme-carres (+ 1 a) b)))))

; Ex2

(de setnth (l p e)

(cond

((null l) nil)

Advertisement

((= p 1) (cons e (cdr l)))

(t (cons (car l) (setnth (cdr l) (1- p) e)))))

; Ex3

(de funsearch (e l)

(mapcar (lambda (sl)

(if (member e sl) (car sl) sl)) l))

; Ex4

Advertisement

(dmd foreach (L f test)

`(mapcar (lambda (x) (if (funcall ,test x)

(funcall ,f x))) ,L))

; Ex5

(de ord (A)

(cond

((null A) t)

Advertisement

((and (> (car A) (caadr A)) (<= (car A) (caaddr A)))

(and (ord (cadr A))

(ord (caddr A))))

(t nil)))