方案 - 具有三个随机元素的简单列表
Scheme - Simple list with three random elements
今天之前我什至没有见过 Scheme,但需要它来为 GIMP 编写一个简单的脚本。基本上我需要一个包含从 0 到 255 的三个随机元素的列表。然后我将这个列表提供给一个在 gimp 中设置前景色的函数。我试过:
(let* ( (x '(( random 255 ) 255 255))) x)
及其所有变体,但它会将 x 的第一个值设置为字符串(随机 255),从而导致输出:
((random 255) 255 255)
GIMP 函数自然不会接受,因为它需要三个数字。
我试着查找这个问题,但只找到了非常复杂的解决方案,老实说,我根本不明白。
(random n)
会在区间[0,n-1]
内产生一个随机数。因此,您可以使用 (random 256)
.
创建一个介于 0 和 255 之间的随机数(含 0 到 255)
要在上述区间内创建三个值的列表,您可以定义一个函数,如下所示:
(define (rgb)
(list (random 256)
(random 256)
(random 256)))
例如,
(rgb)
=> '(55 114 248)
(rgb)
=> '(206 195 169)
(rgb)
=> '(5 157 209)
今天之前我什至没有见过 Scheme,但需要它来为 GIMP 编写一个简单的脚本。基本上我需要一个包含从 0 到 255 的三个随机元素的列表。然后我将这个列表提供给一个在 gimp 中设置前景色的函数。我试过:
(let* ( (x '(( random 255 ) 255 255))) x)
及其所有变体,但它会将 x 的第一个值设置为字符串(随机 255),从而导致输出:
((random 255) 255 255)
GIMP 函数自然不会接受,因为它需要三个数字。
我试着查找这个问题,但只找到了非常复杂的解决方案,老实说,我根本不明白。
(random n)
会在区间[0,n-1]
内产生一个随机数。因此,您可以使用 (random 256)
.
要在上述区间内创建三个值的列表,您可以定义一个函数,如下所示:
(define (rgb)
(list (random 256)
(random 256)
(random 256)))
例如,
(rgb)
=> '(55 114 248)
(rgb)
=> '(206 195 169)
(rgb)
=> '(5 157 209)