Source of Nothingness - -5084)

* Menu

[[About:self:AboutPage.txt]] | [[Profile:http://iddy.jp/profile/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:http://raido.sakura.ne.jp/southly/xyzzy/site-lisp/]] | [[あんてな:http://i-know.jp/southly/listall]] | [[■:http://raido.sakura.ne.jp/southly/lisp/ni/view.lisp]] | [[buzz:http://www.google.com/profiles/southly#buzz]]

* 素数を求める

素直に再帰
(defun generate-primes (limit)
  (labels ((check (x prime)
             (cond ((endp prime)
                    t)
                   ((zerop (rem x (car prime)))
                    nil)
                   (t
                    (check x (cdr prime)))))
           (main (n x prime)
             (cond ((> x n)
                    (nreverse prime))
                   ((check x prime)
                    (main n (+ x 2) (cons x prime)))
                   (t
                    (main n (+ x 2) prime)))))
    (format t "~{ ~D~}~%" (main limit 3 (list 2)))))

* 素数を求める

素直にループ
(defun generate-primes (limit)
  (let ((prime nil))
    (push 2 prime)
    (do ((x 3 (+ x 2)))
        ((> x limit))
      (if (dolist (i prime t) (if (zerop (rem x i)) (return nil)))
          (push x prime)))
    (format t "~{ ~A~}~%" (nreverse prime))))

* 2006-06-22

* 素数を求める。

とりあえず、アルゴリズム事典から。
よりLispらしく。
(defun generatePrimes (n)
  (let ((k 0)
        (prime (make-vector n :fill-pointer 0)))
    (vector-push 2 prime)
    (incf k)
    (do ((x 3 (+ x 2))
         (i 0 0))
        ((>= k n))
      (while (and (< i k) (/= 0 (rem x (aref prime i))))
        (incf i))
      (when (= i k)
        (vector-push x prime)
        (incf k)))
    prime))

* xyzzy lisp : format ~X

(format nil "~X" #x123abc)
"123abc"
(format nil "~:X" #x123abc)
"123,abc"
(format nil "~@X" #x123abc)
"+123abc"
(format nil "~:@X" #x123abc)
"+123,abc"
(format nil "~10X" #x123abc)
"    123abc"
(format nil "~10,'*X" #x123abc)
"****123abc"
(format nil "~10,'*:@X" #x123abc)
"**+123,abc"
(format nil "~10,'*,'-,2:X" #x123abc)
"**12-3a-bc"

* xyzzy lisp : format ~D


(format nil "~D" 12345)
"12345"
(format nil "~:D" 12345)
"12,345"
(format nil "~@D" 12345)
"+12345"
(format nil "~:@D" 12345)
"+12,345"
(format nil "~10D" 12345)
"     12345"
(format nil "~10,'*D" 12345)
"*****12345"
(format nil "~10,'*:@D" 12345)
"***+12,345"
(format nil "~10,'*,'-,2:D" 12345)
"***1-23-45"

* Scrapbook : template