2項目リストをドットペアに変換しますか?


7

Q: 2アイテムリストをドットペアconsセルに変換するにはどうすればよいですか?

2項目のリストを次のようにドットペアに変換できます。

(let ((list '(1 2)))
  (cons (car list) (cadr list)))        ; => (1 . 2)

私はブランキングしています:これを行う組み込み関数はありますか、それとも自分でロールする必要がありますか?


5
恥知らずなプラグイン:このような場合、提案は素晴らしいです。入力を'(1 2)、出力を'(1 . 2)にすると、提案さ(apply #'cons '(1 2))れます!
Wilfred Hughes

回答:


11

cons2つの引数からコンスセルを作成します。apply関数の引数としてリストを使用します。その力は、組み合わせる場合:(apply #'cons x)(リストの内側の周り突くことなく)コンス・セル内に2つの素子リストに変換し、リストが長い2でない場合にエラーが発生します。


これがより簡潔で、適切なエラー処理が含まれているのは素晴らしいことです。
Daniel Jour
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.