我需要在方案中生成一个随机的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具有用于生成随机值的内置过程。 –