Selamlar,
CL + CGI uygulamaları için ısınma turlarını, yazdığım küçük bir sayısal
loto yapmak istedim. Fakat bir sorunla karşılaştım.
Başta cgi ve apache gibi unsurlardan kaynaklandığını sandığım sorunun
konuyu inceleyince CLISP ile ilgili olduğunu gördüm.
Şöyleki, aşağıdaki kodu repl'dan, sbcl ve clisp yorumlayıcıdan
çalıştırdığımda sorun yok. Her defasında, beklediğim gibi, farklı random
değerleri geliyor.
Fakat ;
$clisp sloto.lisp
şeklinde çalıştırdığımda her zaman aynı değerler geliyor, random
funksiyonu her defasında sanki bir stackten okur gibi aynı değerleri
veriyor.
(defun sloto (nofcol)
(setf rndnum nil)
(dotimes (j nofcol)
(setf kolon nil)
(dotimes (i 6)
(setf rndnum (random 50))
;; debug print
(print rndnum)
(if (zerop rndnum)
(if (zerop i) () (setf i (- i 1)))
(if (member rndnum kolon)
(setf i (- i 1))
(setf kolon (cons rndnum kolon)))))
(setf kolon (sort kolon #'<))
(print kolon)
))
(sloto 2)
Belki benim bilmediğim kolay bir yolu ya da yaptığım bariz bir hatam
vardır, yardımcı olursanız sevinirim.
Necati Keseci
_______________________________________________
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