Можно ли преобразовать цвет в массив?

Можно ли преобразовать цвет в массив?

Я пытаюсь выяснить, возможно ли преобразовать colors в массивы с помощью {red|green|blue}partэтого макроса

vardef arrayFromColors(suffix $)(text c) =
  save i_ ; i_ = 0 ;
  numeric $[][] ;
  for i = c:
    for j = 0 upto 2:
      if     j = 0: $[i_][j] = redpart   i ;
      elseif j = 1: $[i_][j] = greenpart i ;
      else:         $[i_][j] = bluepart  i ;
      fi
    endfor ;
    i_ := i_+1 ;
  endfor ;
enddef ;

который используется таким образом

arrayFromColors(A)((0,1,2),(3,4,5));

но всегда выдает ошибку:

metafun > log > error: Не реализовано: decimal(неизвестное число)

Итак, возможно ли преобразовать colors в массивы таким образом?

решение1

Ладно, я нашел, в чем проблема.

Я попытался напечатать полный массив, A[1]например, с помощью message, но, похоже,message не удается распечатать полный массив в журнале компиляции.

Я попробовал с другим массивом, объявленным вручную, проверить

numeric a[] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 30 ;
message a ;

и он терпит неудачу с той же ошибкой

metafun > log > error: Не реализовано: decimal(неизвестное число)

слишком.

A[1][1]Однако, например , при доступе к значениям по одному , messageправильно выводит значение 4, как и должно быть, с помощью небольшого фрагмента кода из моего вопроса.

Связанный контент