【问题标题】:Scheme - Simple list with three random elements方案 - 具有三个随机元素的简单列表
【发布时间】:2017-11-03 14:29:58
【问题描述】:

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

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

及其所有变体,但它会将 x 的第一个值设置为 (random 255) 的字符串,导致输出:

 ((random 255) 255 255)

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

我尝试查找这个问题,但只找到了非常复杂的解决方案,而且老实说,我根本不明白。

【问题讨论】:

    标签: scheme gimp script-fu


    【解决方案1】:

    (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)
    

    【讨论】:

    • 非常感谢,真不敢相信我没想到要尝试。
    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多