Lisp-arrays
LISP-配列
LISPでは、 make-array 関数を使用して、単一または複数次元の配列を定義できます。 配列は、任意のLISPオブジェクトを要素として保存できます。
すべての配列は、連続したメモリ位置で構成されています。 最下位アドレスは最初の要素に対応し、最上位アドレスは最後の要素に対応します。
配列の次元数は、ランクと呼ばれます。
LISPでは、配列要素は非負の整数インデックスのシーケンスによって指定されます。 シーケンスの長さは、配列のランクと等しくなければなりません。 インデックスはゼロから始まります。
たとえば、my-arrayという名前の10セルの配列を作成するには、次のように記述できます-
aref関数を使用すると、セルのコンテンツにアクセスできます。 配列の名前とインデックス値の2つの引数を取ります。
たとえば、10番目のセルのコンテンツにアクセスするには、次のように記述します-
例1
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
あなたがコードを実行すると、それは次の結果を返します-
例2
3行3列の配列を作成しましょう。
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
あなたがコードを実行すると、それは次の結果を返します-
実施例3
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
あなたがコードを実行すると、それは次の結果を返します-
make-array関数の完全な構文
make-array関数は、他の多くの引数を取ります。 この関数の完全な構文を見てみましょう-
_dimensions_引数を除き、他のすべての引数はキーワードです。 次の表に、引数の簡単な説明を示します。
Sr.No. | Argument & Description |
---|---|
1 |
配列の次元を提供します。 これは、1次元配列の数であり、多次元配列のリストです。 |
2 |
:element-type これは型指定子であり、デフォルト値はTです。 いかなるタイプ |
3 |
:initial-element 初期要素の値。 すべての要素が特定の値に初期化された配列を作成します。 |
4 |
:initial-content オブジェクトとしての初期コンテンツ。 |
5 |
:adjustable 基になるメモリのサイズを変更できるサイズ変更可能な(または調整可能な)ベクトルを作成するのに役立ちます。 引数は、配列が調整可能かどうかを示すブール値で、デフォルト値はNILです。 |
6 |
:fill-pointer サイズ変更可能なベクターに実際に保存されている要素の数を追跡します。 |
7 |
:displaced-to これは、指定された配列と内容を共有する、置き換えられた配列または共有配列の作成に役立ちます。 両方の配列の要素タイプは同じである必要があります。 :displaced-toオプションは、:initial-elementまたは:initial-contentsオプションと一緒に使用することはできません。 この引数のデフォルトはnilです。 |
8 |
:displaced-index-offset 作成された共有配列のインデックスオフセットを提供します。 |
実施例4
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
あなたがコードを実行すると、それは次の結果を返します-
変位した配列が二次元である場合-
あなたがコードを実行すると、それは次の結果を返します-
変位したインデックスオフセットを5に変更してみましょう-
あなたがコードを実行すると、それは次の結果を返します-
実施例5
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
あなたがコードを実行すると、それは次の結果を返します-