> For the complete documentation index, see [llms.txt](https://kurohasu.gitbook.io/fsharpabout/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kurohasu.gitbook.io/fsharpabout/basic/collection/functions.md).

# 配列の主な機能

#### 機能が多い！！

前ページで紹介すると言いましたが1\~4次元あるため機能がめちゃくちゃ多いです...\
なのでここでは2次元配列(Array2D)の機能に絞って紹介していきます\
(ここでは「[関数](/fsharpabout/basic/def-fun.md)」と「[ラムダ式](/fsharpabout/functions/lambda.md)」が出てきます)

・Array2D.Create\
配列を作成\
・Array2D.zeroCreate\
配列を全て0で作成

```
構文:Array2D.Create 要素1 要素2 <値>
    Array2D.zeroCreate 要素1 要素2

let A=Array2D.Create 2 3 81
(要素が全て81の2*3配列を作成)

let B=Array2D.zeroCreate 5 7 
(要素が全て0の5*7配列を作成)
```

\
・Array2D.copy\
配列をコピーする

```
構文Array2D.copy コピーする配列

let C=Array2D.copy D
(配列DをCにコピペする)
```

\
\
・Array2D.length1\
配列の1次元目の要素数を返す\
\
・Array2D.length2\
配列の2次元目の要素数を返す

```
構文:Array2D.Length1 配列
    Array2D.Length2　配列

let x=Array2D.length1 retsu
(配列"retsu"の1次元目の要素数をxに代入)

let y=Array2D.length2 retsu
(配列"retsu"の2次元目の要素数をyに代入)
```

\
\
・Array2D.map\
配列の各要素に関数を適用する(ラムダ式だけでなく関数も可能です)

```
構文:Array2D.map <関数> <配列>

例：retsuを受け取り全要素を＋２したものをnewarrとして返す
①ラムダ式
let newarr=Array2D.map (fun x->x+2) retsu

②関数で宣言
let mapfun(x)=x+2    //適用する関数
let newarr=Array2D.map mapfun retsu
```

{% hint style="info" %}
Array2D.iteri　と記述しても同じ動作が出来るようです
{% endhint %}

\
・Array2D.init\
配列の作成＋ラムダ式を適用

```
構文:Array2D.init 要素1 要素2 <ラムダ式>

例:全要素を各要素数の和にする([1,3]=4など)
ラムダ式
let newarr=Array2D.init 3 4 (fun x y->x+y)
```

{% hint style="info" %}
Array2D.initにて使用する関数では各要素を引数とするラムダ式の記述が\
必要です
{% endhint %}

Array2Dように簡単な説明のみとなっていますが、一部は関数型言語として重要な機能も含まれます。\
関数型言語としての説明は「[コレクション型の高階関数](/fsharpabout/functions/korekushonnona.md)」をご覧ください。

Array2Dに限らず、コレクション型は多くの機能があります\
次ページではそれらの一覧をご紹介します
