このマクロをcolor
使ってsを配列に変換できるかどうかを調べています{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 > ログ > エラー: 実装されていません: 小数点(不明な数値)
color
では、そのように s を配列に変換することは可能でしょうか?
答え1
気にしないでください。何が問題なのか分かりました。
A[1]
たとえば、 を使用して完全な配列を印刷しようとしましたmessage
が、message
コンパイル ログに完全な配列を印刷できないようです。
手動で宣言した別の配列で確認してみました
numeric a[] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 30 ;
message a ;
そして同じエラーで失敗する
metafun > ログ > エラー: 実装されていません: 小数点(不明な数値)
あまりにも。
A[1][1]
ただし、たとえば値に 1 つずつアクセスする場合、私の質問の小さなコードでは、message
値が正しく印刷されます。4