関数 cons は任意のS式をリストの先頭に付け加える。
gosh> (cons 'peanut '(butter and jelly)) (peanut butter and jelly) gosh> (cons '(banana and) '(peanut butter and jelly)) ((banana and) peanut butter and jelly)
cons は2つの引数をとり、ひとつ目は任意のS式、ふたつ目はリストでなければならない。
gosh> (cons 'a 'b) (a . b)
あれ、エラーにならないな。リストともちょっと違う。なんだかわからないけど、そのうち出てくるだろう。それまでは保留。
脚注には、「実際、(cons α β) はすべての値αとβにうまく働いて、(car (cons α β))=α、(cdr (cons α β))=β となります。」とある。
gosh> (car (cons 'a 'b)) a gosh> (cdr (cons 'a 'b)) b
Cons の掟
関数 cons は2つの引数を取る。
cons の第2引数はリストでなければならない。
結果はリストとなる。