تجهيز أزواج من القيم من اثنين من سلاسل في كلوجر

StackOverflow https://stackoverflow.com/questions/1009037

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن ندخل في المجتمع كلوجر. لقد تم العمل كثيرا مع بيثون، واحدة من السمات I استفادة واسعة من هو الأسلوب البريدي ()، لبالتكرار عبر أزواج من القيم. هل هناك طريقة (ذكية وقصيرة) لتحقيق نفس الشيء في كلوجر؟

هل كانت مفيدة؟

المحلول

وهناك طريقة أخرى هي ببساطة استخدام خريطة جنبا إلى جنب مع بعض من وظيفة التي تقوم بجمع حججها في تسلسل، مثل هذا:

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])

نصائح أخرى

(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}

وبالتكرار عبر خرائط يحدث زوجيا، على سبيل المثال مثل هذا:

(doseq [[k v] (zipmap [:a :b :c] (range 3))]
  (printf "key: %s, value: %s\n" k v))

والمطبوعات:

key: :c, value: 2
key: :b, value: 1
key: :a, value: 0

تم الإجابة على السؤال، ولكن لا يزال هناك interleave، الذي يعالج أيضا عدد التعسفي من متواليات، ولكن لا مجموعة تسلسل مما أدى إلى الصفوف (ولكن يمكنك استخدام partition لذلك).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top