Source of Nothingness - random

* Menu

[[About:self:AboutPage.txt]] | [[Profile:file/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:lisp/]] | [[あんてな:listall]] | [[■:lisp]] | [[buzz:files/southly#buzz]]

* 2009-03-21 :

print-objectを定義するとprincとprin1の両方に影響するんだなぁ
別々に定義することはできないんだろうか。

と思ったらできた。
princとprin1の差は*print-escape*に現れるので、この値で分岐すれば良かった。*print-readably*かと勘違いしてた。

(defclass point ()
  ((x :initform (random 100))
   (y :initform (random 100))))
(make-instance 'point)
;=> #<POINT {121573B1}>
(defmethod print-object ((object point) stream)
  (if *print-escape*
      (print-unreadable-object (object stream :type t)
        (format stream "(~D, ~D)" (slot-value object 'x) (slot-value object 'y)))
      (format stream "(~D, ~D)" (slot-value object 'x) (slot-value object 'y))))
(make-instance 'point)
;=> #<POINT (53, 69)>
(format nil "~A" (make-instance 'point))
;=> "(55, 81)"
(format nil "~S" (make-instance 'point))
;=> "#<POINT (41, 71)>"
[[(ReadMore...) index.rb?1237620463.txt]]

* xyzzy lisp : シャッフル

(defun nswap (l x y)
  (rotatef (car (nthcdr x l)) (car (nthcdr y l)))
  l)

(defun nshuffle (l)
  (do ((i (length l) (1- i)))
      ((>= 1 i))
    (setq l (nswap l (1- i) (random i))))
  l)
元のデータを直接いじっていくほうが分かりやすくないッスか?
ってことでこんな。
nswapは関数にする必要は無いけど意味が分かりやすいように。

* RandomNote : ChangeLog (改造記録)


→[[Todo self:1140534666.txt]]

* RandomNote の [[Wiki記法]] - TextFormat

[[(ReadMore...) index.rb?TextFormat.txt]]

* RandomNote について。

RandomNote について。

→[[ChangeLog self:1141132537.txt]]
→[[Todo self:1140534666.txt]]

* xyzzy lisp : junk/httpの利用例として