NamedArray
プログラミング言語をデータとして扱うためには名前付きの配列が必要なんじゃ???
って思い、NamedArrayクラスってのを作ってみました。
これ使えば、配列と連想配列の両方兼ねてるのでいろいろできるはずです。
名前付き配列を扱うことが出来るJSONみたいなのがC式として採用できるといいんではないかと。
return:[ [print [add, 1,2] ] ], add:[ a:int, b:int, return: [+, a, b] ]
こんなかんじ。
あとは、括弧の省略ができればなぁと。
class NamedArray(T, N) { T[N] name; int[] array; int length(int length) { if (array.length > length) foreach(N key, int i; name) if (i < length) name.remove(key); return array.length = length; } int length() { return array.length; } T opIndexAssign(T value, int n) { return array[n] = value; } T opIndexAssign(T value, N n) { return array[name[n]] = value; } int opIndexAssign(N n, int number) { return name[n] = number; } T opIndex(int n) { return array[n]; } T opIndex(N n) { return array[name[n]]; } } void main() { NamedArray!(int, char[]) na = new NamedArray!(int, char[])(); na.length = 10; na[0] = "start"; na[0] = 1; na[1] = 2; na[3] = 3; na[3] = "end"; for (int i = 0; i < na.length; i++) { printf("%d\n", na[i]); } printf("%d\n", na["start"]); printf("%d\n", na["end"]); }