Scheme - 包含三个随机元素的简单列表

时间:2017-11-03 14:29:58

标签: scheme gimp script-fu

我甚至在今天之前都没见过Scheme,但是需要它为GIMP写一个简单的脚本。基本上我需要一个包含从0到255的三个随机元素的列表。然后我将这个列表赋予一个在gimp中设置前景色的函数。我试过了:

 (let* ( (x '(( random 255 ) 255 255))) x)

及其所有变体,但它会将x的第一个值设置为(随机255)的字符串,从而产生以下输出:

 ((random 255) 255 255)

GIMP功能自然会接受,因为它需要三个数字。

我尝试查找这个问题,但只找到了非常复杂的解决方案,如果我诚实的话,我根本不理解。

1 个答案:

答案 0 :(得分:2)

(random n)会在[0,n-1]区间内生成一个随机数。因此,您可以使用(random 256)创建0到255之间的随机数。

要在上述间隔内创建三个值的列表,您可以按如下方式定义函数:

(define (rgb)
  (list (random 256)
        (random 256)
        (random 256)))

例如,

(rgb)
=> '(55 114 248)
(rgb)
=> '(206 195 169)
(rgb)
=> '(5 157 209)