On Sun, 17 Aug 2008, <[EMAIL PROTECTED]> writes: > (loop as i from 1 to 5 do (print ddd) ) > komutuyla ddd değişkeninin değerini ekrana yazdırabiliyorum. > ancak benim istediğim > (loop as i from 1 to 5 do ddd) ile 5 kere aynı değeri geri dönmesiydi ancak > beceremedim > bunu nasıl yaparım.
5 kere aynı değerin dönmesi ile kastınız anlayamadım? Common Lisp'te her ifadenin döndürdüğü _bir_ değer mevcuttur. (Olayın hukuksal HyperSpec ayrıntısını liste sakinleri yanlışlarımı düzelterek bildireceklerdir.) İstediğiniz acaba şöyle bir şey mi? TEST> (apply #'values (loop repeat 5 collect 100)) 100 100 100 100 100 Ya da şöyle bir şey mi? TEST> (defmacro repeat-return (fn value count) (let ((%value (gensym)) (%count (gensym))) `(let ((,%value ,value) (,%count ,count)) (defun ,fn () (when (plusp (decf ,%count)) ,%value))))) REPEAT-RETURN TEST> (repeat-return 5-times-100 100 5) 5-TIMES-100 TEST> (5-times-100) 100 TEST> (5-times-100) 100 TEST> (5-times-100) 100 TEST> (5-times-100) 100 TEST> (5-times-100) NIL Bu arada böyle bir istediğinizin neden doğduğunu anlayamadım, fakat bu kötü tasarıma bir işaret gibi geliyor bana. İyi çalışmalar. _______________________________________________ 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