地図
Scheme の map 関数は、リスト (または複数のリスト) の各要素にプロシージャを適用し、結果を含む新しいリストを返すために使用されます。そのため、データの変換に最適です。
map の最も単純な形式は次のようになります。
(map procedure list)- 手順: リストの各要素に適用する関数。
- リスト: 要素が変換されるリスト。
例: 各要素を 2 倍にする
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- ここでは、関数
doubleがリスト(1 2 3 4)の各要素に適用されます。 - 結果は、各要素が 2 倍になった新しいリストになります。
出力: (2 4 6 8)
仕組み
新しいリストを作成します:
mapは、提供されたプロシージャをリストの各要素に適用し、結果を新しいリストに収集します。
データを変換:
- 副作用を実行するのではなく、主にデータ変換に使用されます。
例: 複数のリストでの使用
複数のリストが指定された場合、map は各リストの対応する要素を処理します。
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- 関数
sumは、2 つのリストから対応する要素を追加し、結果を新しいリストとして返します。
出力: (5 7 9)
概要
map関数は、各要素にプロシージャを適用してリストを変換するための強力なツールです。for-eachとは異なり、mapプロシージャを適用した結果を含む新しいリストを生成します。- 複数のリストをサポートし、要素ごとの操作を可能にします。
map を使用すると、元のリストを変更せずに、データの変換バージョンを効率的に作成できます。