Біріктірілген жолдардың тізіміне қосылуға арналған екі тізімді Zip

Zip-mapping орнына алу үшін екі тізім:

(zipmap ["a","b","c"] ["c","d","e"]) = {"c" "e", "b" "d", "a" "c"} 

Бірінші тізімнің бірінші элементін екінші тізімнің бірінші элементімен байланыстырғым келеді және келесідей:

("ce","bd","ac") 

немесе кері тәртіпте.

6

1 жауаптар

Мұны map арқылы жасауға болады. map бірнеше топтаманы алуы мүмкін, ол әр коллекциядан келесі элементті алады және оларды бірінші аргумент ретінде берілген функцияға жібереді (жинақтардың біреуі тоқтағанда тоқтатылады). Сондықтан сіз дәлелдер мен N топтамаларын қабылдайтын функцияға өтуіңізге болады.

Өрнек

(map str ["a" "b" "c"] ["c" "d" "e"])

алдымен «a» және «c», содан кейін «b» және «d», содан кейін «c» және «e» деп аталатын str деп аталады. Нәтиже болады

("ac" "bd" "ce")

Себебі str аргументтердің ауыспалы санын алуы мүмкін, ол кез-келген жинақтармен бірге қолданыла алады. Төрт топтамада өтетін сияқты

(map str ["a" "b" "c"] ["d" "e" "f"] ["g" "h" "i"] ["j" "k" "l"])

бағалауға болады

("adgj" "behk" "cfil")
12
қосылды
Немесе (map str [«a» «b» «c»] [«c» «d» «e»])
қосылды автор Brian Carper, көзі
@Brian: рахмет, бұл мәтінді жауап беру үшін қосқан.
қосылды автор Nathan Hughes, көзі
@Mark: келісілмеген, қажетсіз анонимді функцияны толығымен алып тастау үшін қайта жазылған.
қосылды автор Nathan Hughes, көзі
Жақсы жауап. Ол әртүрлі жиынтықтармен карталардың қалай жұмыс істейтінін білуден тәуелді, бұл әрдайым оқулықтармен қамтылмайды.
қосылды автор Adrian Mouat, көзі
Тіпті str екі аргументті ең көп алады, map str map # (str%% 2) қарағанда жақсы. Сіз жаңа функцияларды жариялаудан аулақ болуыңыз керек, себебі сіз бар болғанды ​​тек тікелей жібере аласыз.
қосылды автор Mark Reed, көзі