2つのベクトルから連想リストを作成する


7

私は2つのベクトルを持っている、[apple orange][5 10]((apple 5) (orange 10))それらから関連リストを作成するにはどうすればよいですか?

回答:


11

使用できますcl-pairlis

(require 'cl-lib)

(cl-pairlis '(apple orange) '(5 10))
;; =>
;; ((apple . 5) (orange . 10))

ベクトルにも使用できます:

(cl-pairlis [apple orange] [5 10])
;; =>
;; ((apple . 5) (orange . 10))

clライブラリはの短いエイリアスpairlisを定義してcl-pairlisいますが、これは新しいEmacsバージョンでは非推奨です。)


こんにちはabo-abo、それは魔法のように動作します!連想リストをファイルに保存したいのですが、これに適した機能を知っていますか?(挿入は機能しません)...
yi.tang.uni

(insert(prin1-to-string(pairlis [apple orange] [5 10])))
abo-abo

興味深いことに、ベクターで機能することに気づきませんでした(ドキュメント化されていない機能のように見えます)。
jch

@ abo-aboすばらしいです、ありがとうございました!グーグルの時間を大幅に節約してくれました。
yi.tang.uni

11

(cl-mapcar #'cons [apple orange] [5 10]) => ((apple . 5) (orange . 10))

(cl-mapcar #'list [apple orange] [5 10]) => ((apple 5) (orange 10))

Emacs cl-mapcarは引数として、1つ以上のアリティの関数と、そのアリティと同じ数のシーケンスを取ります。Common Lisp mapcarも同様ですが、受け入れられるシーケンスはリストのみです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.