Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define words
- (lambda (n l)
- (if (zero? n)
- '(())
- (words-aux 1 n '(()) l))))
- ; Si i et n sont des naturels tel que 0 <= i <= n
- ; u et l sont respectivement la liste des mots de taille i et l'aphabet disponible
- ; alors (words-aux i n u l) retourne la liste des mots de taille i
- (define words-aux
- (lambda (i n u l)
- (if (> i n)
- u
- (words-aux (+ 1 i) n (apply append (map (lambda (x) (insert-list x '(a b c))) u)) l))))
- ; Si u et l sont des listes
- ; alors (insert-list u l) retourne la liste des listes ou chaque élément de l a été ajouté à la fin de u
- (define insert-list
- (lambda (u l)
- (if (null? l)
- '()
- (cons (append u (list (car l))) (insert-list u (cdr l))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement