我需要在方案中生成一個隨機的ASCII字母(大寫或小寫)或字符(但不是數字),我想知道做什麼的適當方法是。目前,我已經得到了代碼生成隨機ASCII字符
(define a 1)
(define b 16)
(define (s8 a b)
(when (<= a b)
(if (= (mod a 8) 0)
(write "h")
(write a))
(s8 (+ a 1) b)))
(s8 a b)
該作品(沒有錯誤),但不是打印隨機ASCII字母/字符,我得到的「H」,因爲我不知道該怎麼做。我搜索了一下,但找不到東西。任何幫助,將不勝感激。謝謝!
編輯:
(define random-char
(let* ((chars '("a" "e" "i" "o" "u"))
(len (length chars)))
(lambda()
(list-ref chars (random len)))))
(define a 1)
(define b 16)
(define (s8 a b)
(when (<= a b)
(if (= (mod a 8) 0)
(random-char)
(write a))
(s8 (+ a 1) b)))
(s8 a b)
給出錯誤
1234567
Error: execute: unbound symbol: "random" [s8, s8, s8, s8, s8, s8, s8, s8, random-char]
不要重新發明輪子! Scheme具有用於生成隨機值的內置過程。 –