>>>>> "ZK" == Zekeriya KO <Zekeriya> writes:
ZK> ... Aynende öyle oldu. subseq ve cons ZK> fonksiyonlarını biliyordum ama nconc'u şimdi öğrendim. Common ZK> Lisp gerçekten de büyük bir dil. ... Aslinda temiz ve randimanli bir cozum degildi o, soyledigim gibi. Nconc'u oraya kasten koydum biraz da, tek satiri degistirerek ve asgari maliyetle is yapmak icin. Append'in de orada ayni sekilde calismasi lazim ama append subseq'in kopyaladigini bir daha kopyalar. Neyse, bir ornek yapayim: CL-USER> (setf *foo* '(1 2 3 4 5)) (1 2 3 4 5) CL-USER> (append *foo* '(a b c)) (1 2 3 4 5 A B C) CL-USER> *foo* (1 2 3 4 5) CL-USER> (nconc *foo* '(a b c)) (1 2 3 4 5 A B C) CL-USER> *foo* (1 2 3 4 5 A B C) Gordugunuz gibi nconc listeyi degistirdi. Boyle kelime gerektirmedigi halde 'n' ile baslayan fonksyonlar genelde verilen argumanlari degistirebilirler[1]. N non-consing demek, yani yeni kopya yaratmiyor, ek hafiza kullanmiyor, cons etmiyor. Garantili degil hepsi icin, ama o 'n' oradan geliyor. Nconc da "non-consing concatane" demek. BM [1] Suradan n'lilere bakabilirsiniz: http://www.lispworks.com/documentation/HyperSpec/Front/X_Alph_N.htm _______________________________________________ cs-lisp mailing list cs-lisp@cs.bilgi.edu.tr http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp