読者です 読者をやめる 読者になる 読者になる

Gaucheでランダムなシンボルを生成する

期末試験の時期になったので、回答のテストのために、ランダムなシンボルが欲くなった。これまでは、私が適当に考えたテストケースを使っていたんだけど、やっぱり期末試験くらいランダムテストをやってみようかと。

しかし、random-symbolのような関数はないみたいなので、てきとーにプログラミング。

(use srfi-1)
(use srfi-27)

(define (random-alphabet)
  (integer->char (+ (random-integer 26)
                    (if (= 0 (random-integer 2) 65 97))))

(define (random-symbol n)
  (let ((chars (list-tabulate n (lambda (x) (random-alphabet)))))
    (string->symbol (apply string chars))))

(randam-symbol n)とすることで、長さnのアルファベットからなるランダムなシンボルが生成される。