とりあえず、非終端記号をランダムに出力するコード

  • 現在の非終端記号
    • car, cdr, cons, quote, set!, cond, define, eq?, list?
(use math.mt-random)

(define mt (make <mersenne-twister> :seed (sys-time)))

(define (non-terminal)
  (let ((rdm (mt-random-integer mt 9) ))
    (cond ((eq? rdm 0) 'car)
          ((eq? rdm 1) 'cdr)
          ((eq? rdm 2) 'cons)
          ((eq? rdm 3) 'quote)
          ((eq? rdm 4) 'set!)
          ((eq? rdm 5) 'cond)
          ((eq? rdm 6) 'define)
          ((eq? rdm 7) 'eq?)
          (else 'list?)))))