Go to the first, previous, next, last section, table of contents.

マッピング関数

マッピング関数は、(ある)集合の各要素に対し関数を適用するのに用います。これは、 (実行時まで)適用すべき関数が知られていない場合にも有効です。ここでは mapcar と mapconcat について述べます。この他のマッピング関数に関してはセクション 8.4 [mapatoms]、ページ 68 を参照して下さい。

Function: mapcar function sequence

この関数は、 sequence の各要素に function を適用(訳注:apply)し、その結果 のリストを返します。 sequence が nil で終るリストでない場合、エラーになり ます。

  (mapcar (function car) '((a b) (c d) (e f)))
       => (a c e)
  (mapcar (function 1+) [1 2 3])
       => (2 3 4)
  (mapcar (function char-to-string) "abc")
       => ("a" "b" "c")
  (progn
    (setq sum 0)
    (mapcar
       (function (lambda (n) (setq sum (+ sum n))))
       '(1 2 3 4 5))
    sum)
       => 15

Function: mapconcat function sequence separator

この関数は、 sequence の各要素に function を適用(訳注:apply)し、その結果 をストリングとして繋げ(訳注:concatenate)ます。結果の各 pair の間に separator を挿入します。 (例えば) " " をセパレータとして用いると、 function の返す値の間にスペースを挿入することになります。

function は、ストリングを返す 1アーギュメントの関数でなくてはいけません。

  (mapconcat (function (lambda (s) (format "%s" s)))
             '(The cat in the hat)
             " ")
       => "The cat in the hat"
  (mapconcat (function (lambda (x) (format "%c" (1+ x))))
             "HAL-8000"
             " ")
       => "IBM.9111"


Go to the first, previous, next, last section, table of contents.