Wah ternyata saya salah, batas rekursinya elisp ternyata memang terlalu rendah, di clisp (common lisp)semua baik2 saja. Pertama, fungsi ini memang terlalu rumit
eh beda banged ya antara emacs lisp dan common lisp?
misalnya (atom ls) itu gak pernah dieksekusi, kalau rekursif murni, sebaiknya begini saja: (defun uniqlist (l) (if (null l) nil (if (member (car l) (cdr l)) (uniqlist (remove (car l) (cdr l))) (cons (car l) (uniqlist (cdr l))) ) ) )
bentar2, kalau list: (cons 'a '(a b c d)) ini hasilnya: '(a . a b c d) bener ga? ada titik (.) itu, ini gw juga bingung knapa harus begitu? arti titik itu apa sih yha?
Algoritmanya agak terlalu rumit, begini lebih sederhana (bisa menangani list yang besar): (defun isuniq(el mylist) (equal (- (length mylist) (length (remove el mylist))) 1) ) (isuniq 'a '(a b c)) t (defun listunik (mylist) (let (result) (dolist (el mylist result) (if (isuniq el mylist) (setq result (append result (list el)))) ) ) ) (listunik '(a b c a b a d e g h i j k l m j i q w p w)) (c d e g h k l m q p)
oh bisa tho pake (setq result x) gitu ya, kalo di emacs lisp ini bisa bikin error exeed assigment loh, kalo boleh tau lu bikinya di commons lisp yah? wah thanks banged nih advicenya help me alot :D -- http://www.nagasakti.or.id/roller/ifnu regards -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis