次の配列は、メモリ内の10000スロットを占有します。
a = [0,1,2,3,4,5,6,7,8,9,10,...,10000]
しかし、同じ配列を次のように簡単に表すことができます。
a = {len:10000, get: λ idx -> idx}
はるかにコンパクトです。同様に、コンパクトに表現できる配列がいくつかあります。
a = {a:1000, get: λ idx -> idx * 2}
Is a description for [0,2,4,6,8,10,...,2000]
a = {a:1000, get λ idx -> idx ^ 2}
Is a description for [0,1,2,4,9,...1000000]
And so on...
非常に多くの配列を提供すると、各要素をメモリに格納するよりもはるかに短い方法で表現できます。
- この現象に名前はありますか?
- 特定の配列の最小表現を見つける方法はありますか?
- これを考慮すると、おそらく記述言語に依存します(この場合は、関数、オブジェクト、および数学演算子を備えた架空のプログラミング言語を使用しました)。オブジェクトのそのような最小限の説明を見つけるのに最適な特定の言語はありますか?