Merhabalar.
Problemi problemi scheme ile cozmeye calistim. Biraz sac bas yoldum,
ama sonra soyle birsey ortaya cikti:
(define (comb liste)
(let comb-help ((lst liste) (builded '(()) ))
(if (null? lst) builded
(comb-help (cdr lst)
(append builded
(map (lambda (x)
(cons (car lst) x))
builded))))))
Sonra diger kodlarla karsilastiridm. Forcer'in koduna benziyor, fakat
accumulator teknigini kullanarak tail-recursive olmasini sagladim.
Biraz daha hizli olacagini tahmin ediyorum.
Ayni kodun haskell karsiligi:
comb lst = comb' lst [[]]
where comb' [] builded = builded
comb' (x:xs) builded = comb' xs (builded ++ (map (x:) builded))
--
Mehmet
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp