Lisp-mapping-functions

提供:Dev Guides
移動先:案内検索

LISP-マッピング関数

マッピング関数は、1つ以上の要素のリストに連続して適用できる関数のグループです。 これらの関数をリストに適用した結果は新しいリストに配置され、その新しいリストが返されます。

たとえば、 mapcar 関数は、1つ以上のリストの連続する要素を処理します。

mapcar関数の最初の引数は関数でなければならず、残りの引数は関数が適用されるリストです。

引数関数は、新しく作成されたリストを作成する連続した要素に適用されます。 引数リストの長さが等しくない場合、マッピングのプロセスは最短リストの最後に到達すると停止します。 結果のリストには、最短の入力リストと同じ数の要素が含まれます。

例1

簡単な例から始めて、リストの各要素に番号1を追加しましょう(23 34 45 56 67 78 89)。

main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。

(write (mapcar '1+  '(23 34 45 56 67 78 89)))

あなたがコードを実行すると、それは次の結果を返します-

(24 35 46 57 68 79 90)

例2

リストの要素を立方体化する関数を書きましょう。 数値の立方体を計算するためにラムダ関数を使用してみましょう。

main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。

(defun cubeMylist(lst)
   (mapcar #'(lambda(x) (* x x x)) lst)
)
(write (cubeMylist '(2 3 4 5 6 7 8 9)))

あなたがコードを実行すると、それは次の結果を返します-

(8 27 64 125 216 343 512 729)

実施例3

main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。

(write (mapcar '+ '(1 3 5 7 9 11 13) '( 2 4 6 8)))

あなたがコードを実行すると、それは次の結果を返します-

(3 7 11 15)