2013-05-07 24 views
14

Geçen yıl standart ML ile oldukça deneyimim vardı, ancak yaklaşık 10 ay içinde gerçek bir işlevsel programlama yapmadım. Şimdi, Scala gruplarındayım, bir derleyiciyi yazarken standart ML'de yoğun olarak kullandığım bir operasyonu bulmakta zorluk çekiyorum (adil olmak için bu yöntem bir kütüphane metodu olmayabilir).Scala - İki Listeleme Tuple Listesi

Temelde, iki listeleri vardır:

List("a","b","c") 
List(1,2,3) 

Ve bana böyle tüp listeleriniz verecek bir işlem istiyorum: Ben kullanabileceğiniz bir standart Scala işlevi var mı

List(("a",1), ("b",2), ("c",3)) 

Bu sonucu almak için? (Bence ona standart ML eyaletinin zip fonksiyonu denilen düşünüyorum, ama Scala zip fonksiyonları için araştırma yaparken o farklı bir şey başvurmak gibi görünüyor.)

+0

Oldukça emin zip, ne istediğinizi, farklı bir şey olduğunu düşündüğünüz şey nedir? –

+0

Farklı bir sıkıştırma tanımı veren Stackoverflow üzerinde başka bir yazı buldum, bu yüzden hatalı olduğumu varsaydım. :/ – GJK

+0

CMU'ya da gittin mi? – rasen58

cevap

29

Haklısınız sen zip kullanabilirsiniz ediyoruz:

val a = List("a","b","c") 
// a: List[String] = List(a, b, c) 

val b = List(1,2,3) 
// b: List[Int] = List(1, 2, 3) 

a zip b // beautified a.zip(b) 
//res0: List[(String, Int)] = List((a,1), (b,2), (c,3)) 
+0

Teşekkür ederim, bunun hiçbir aramada ortaya çıkmadığına inanamıyorum. Bu soruyu aramadan 15 dakika önce iyi bir şekilde harcadım ve hiçbir şeyle geldim. – GJK

+1

@GJK, aynı şekilde davranan (2 veya 3 koleksiyonunu sıkıştırmak istiyorsanız) .zip yönteminin de bulunduğunu not edin: '(a, b, c) .zipped.toList' –

+0

Aslında buldum Bu yöntem, ancak SimplyScala.com'da terminale yazdığımda işe yaramadı, bu yüzden ihtiyacım olan şey için işe yaramayacağını düşündüm. – GJK