Ist es möglich, Farbe in ein Array umzuwandeln?

Ist es möglich, Farbe in ein Array umzuwandeln?

Ich versuche herauszufinden, ob es möglich ist, colors in Arrays umzuwandeln mit {red|green|blue}partund diesem Makro

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 ;

das so verwendet wird

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

aber es schlägt immer mit diesem Fehler fehl:

metafun > log > Fehler: Nicht implementiert: Dezimalzahl (unbekannte Zahl)

colorIst es also möglich , s auf diese Weise in Arrays umzuwandeln ?

Antwort1

Egal, ich habe herausgefunden, was nicht stimmte.

A[1]Ich habe beispielsweise versucht, mit ein vollständiges Array auszudrucken , aber im Kompilierungsprotokoll messagescheint kein vollständiges Array ausgedruckt werden zu können.message

Ich habe versucht, mit einem anderen Array, von Hand deklariert, zu überprüfen,

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

und es schlägt mit dem gleichen Fehler fehl

metafun > log > Fehler: Nicht implementiert: Dezimalzahl (unbekannte Zahl)

zu.

Beim Zugriff auf einzelne Werte wird jedoch A[1][1]beispielsweise mit dem kleinen Codestück aus meiner Frage messageder Wert korrekt und wie vorgesehen ausgedruckt .4

verwandte Informationen