代码段就是这个......
(define (my-make-list n)
(build-list n (λ (x) (build-string 50 (λ (x) (integer->char (+ 65 (make-random-integer)))))))
)
显然这会创建my-make-list函数。然后该函数构建一个由50个字符串组成的列表,我丢失的是lambda正在做什么以及+65的重要性是什么?
提前致谢!
答案 0 :(得分:1)
正如Edper评论的那样,65是ASCII
字符A
的值。将1添加到值将给出字符B
的值(66)。添加2将为C
(90)提供Z
(67),... 25的值。
因此,假设make-random-integer
生成0到25之间的随机数,my-make-list
会返回 n 随机大写字符串(长度为50个字符)。
> (require racket/math)
> (define (my-make-list n)
(build-list n (λ (x) (build-string 50 (λ (x) (integer->char (+ 65 (make-random-integer))))))))
> (define (make-random-integer) (exact-floor (* (random) 26)))
> (my-make-list 1)
'("BXXCBXVQEERWLETALMZZSVSVGIEXPYLKQNXTYLASRKLCNOONRN")
> (my-make-list 3)
'("EAUHIHEEKIKQFDWSUXOLAFKBEYCDZKDRQNMGTHKMUNIUGTMRSD"
"GUMWLTOYHCZMQVCTZHIIPRMGXFOKNYAWEVOVSLCWXLFCIYNHKT"
"PBJDEFPLZHTCQEXIVEAGEFPTFXCRDWJVXIIHDJUCNYLPJAYWCA")