Схема - Простой список с тремя случайными элементами

Я даже не видел Scheme до сегодняшнего дня, но мне нужно написать простой скрипт для GIMP. По сути, мне нужен список с тремя случайными элементами от 0 до 255. Затем я передаю этот список функции, которая устанавливает цвет переднего плана в gimp. Я пробовал:

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

И все его варианты, но вместо этого он установит первое значение x в строку (случайное 255), что приведет к выводу:

 ((random 255) 255 255)

Который, естественно, функция GIMP не примет, так как ожидает три числа.

Я попытался найти эту проблему, но нашел только действительно сложные решения, которые я, если честно, совсем не понимаю.

1 ответ

Решение

(random n) сгенерирует случайное число в интервале [0,n-1], Таким образом, вы можете создать случайное число от 0 до 255 включительно, используя (random 256),

Чтобы создать список из трех значений в указанном интервале, вы можете определить функцию следующим образом:

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

Например,

(rgb)
=> '(55 114 248)
(rgb)
=> '(206 195 169)
(rgb)
=> '(5 157 209)
Другие вопросы по тегам