คำถามติดแท็ก scala

Scala เป็นภาษาการเขียนโปรแกรมที่ใช้งานทั่วไปโดยมีเป้าหมายหลักที่ Java Virtual Machine ออกแบบมาเพื่อแสดงรูปแบบการเขียนโปรแกรมทั่วไปในรูปแบบที่กระชับสง่างามและปลอดภัยในการใช้งาน คุณสมบัติที่สำคัญของมันคือ: ระบบประเภทคงที่ขั้นสูงที่มีการอนุมานประเภท; ประเภทฟังก์ชั่น รูปแบบจับคู่; พารามิเตอร์และการแปลงโดยนัย ผู้ประกอบการมากไป; การทำงานร่วมกันอย่างสมบูรณ์กับ Java; เห็นพ้องด้วย

2
วิธี scala slick ฉันยังไม่เข้าใจ
ฉันพยายามทำความเข้าใจงานเนียนบางอย่างและสิ่งที่ต้องใช้ นี่คือตัวอย่าง: package models case class Bar(id: Option[Int] = None, name: String) object Bars extends Table[Bar]("bar") { def id = column[Int]("id", O.PrimaryKey, O.AutoInc) // This is the primary key column def name = column[String]("name") // Every table needs a * projection with the same type as the table's type parameter …

5
แมปทั้งคีย์และค่าของแผนที่สกาล่า
MapLikeลักษณะของสกาล่ามีวิธีการ mapValues [C] (f: (B) ⇒ C): Map[A, C] แต่บางครั้งฉันก็ต้องการประเภทอื่น: mapKeysAndValues [C] (f: (A, B) ⇒ C): Map[A, C] มีวิธีง่ายๆในการทำสิ่งนี้ที่ฉันขาดหายไปหรือไม่? แน่นอนว่าสามารถทำได้ด้วยการพับ
89 scala 

5
ประเภทที่สูงกว่ามีประโยชน์เมื่อใด
ฉันทำ dev ใน F # มาระยะหนึ่งแล้วและฉันก็ชอบมัน อย่างไรก็ตามคำศัพท์หนึ่งที่ฉันรู้ว่าไม่มีอยู่ใน F # เป็นประเภทที่สูงกว่า ฉันได้อ่านเนื้อหาเกี่ยวกับประเภทที่สูงกว่าและฉันคิดว่าฉันเข้าใจคำจำกัดความของพวกเขา ฉันไม่แน่ใจว่าเหตุใดจึงมีประโยชน์ ใครช่วยยกตัวอย่างว่าประเภทที่สูงกว่าทำให้ง่ายใน Scala หรือ Haskell ที่ต้องใช้วิธีแก้ปัญหาใน F # สำหรับตัวอย่างเหล่านี้วิธีแก้ปัญหาจะเป็นอย่างไรหากไม่มีประเภทสูงกว่า (หรือในทางกลับกันใน F #) บางทีฉันอาจจะชินกับการทำงานกับมันมากจนฉันไม่สังเกตเห็นว่าไม่มีฟีเจอร์นั้น (ฉันคิดว่า) ฉันเข้าใจว่าแทนที่จะเป็นประเภทที่ดีกว่าmyList |> List.map fหรือmyList |> Seq.map f |> Seq.toListสูงกว่าช่วยให้คุณเขียนได้ง่ายๆmyList |> map fและมันจะส่งกลับ a List. มันเยี่ยมมาก (สมมติว่าถูกต้อง) แต่ดูเหมือนจะไม่สุภาพ? (และไม่สามารถทำได้ง่ายๆโดยปล่อยให้ฟังก์ชันโอเวอร์โหลด) ฉันมักจะแปลงเป็นSeqอย่างไรก็ตามจากนั้นฉันสามารถแปลงเป็นอะไรก็ได้ที่ฉันต้องการในภายหลัง อีกครั้งบางทีฉันก็ชินเกินไปที่จะทำงานกับมัน แต่จะมีตัวอย่างที่ใดประเภทสูง kinded จริงๆช่วยให้คุณประหยัดทั้งในการกดแป้นพิมพ์หรือในรูปแบบความปลอดภัย?

3
มีห้องสมุดคณิตศาสตร์ / สถิติที่ดีสำหรับ Scala หรือไม่? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังมองหาไลบรารีโอเพนซอร์สที่ดีสำหรับ scala สำหรับคณิตศาสตร์และสถิติ หวังว่าจะเป็นเช่น Apache Math หรือ Colt แต่นำไปใช้ใน Scala ใครช่วยชี้ทิศทางที่ถูกต้องให้ฉันได้ไหม
89 scala  math  statistics 

13
แปลงรายการ Scala เป็นทูเปิลหรือไม่
ฉันจะแปลงรายการที่มี (พูด) 3 องค์ประกอบเป็นทูเพิลขนาด 3 ได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันมีval x = List(1, 2, 3)และฉันต้องการแปลงเป็น(1, 2, 3)ไฟล์. ฉันจะทำเช่นนี้ได้อย่างไร?
89 list  scala  tuples 

10
การแปลงคอลเลกชัน Java เป็นคอลเลกชัน Scala
ที่เกี่ยวข้องกับคำถาม Stack Overflow Scala เทียบเท่ากับ HashSet (Collection)ใหม่ฉันจะแปลงคอลเลกชัน Java ( java.util.Listพูด) เป็นคอลเล็กชัน Scala ได้Listอย่างไร ฉันกำลังจริงพยายามที่จะแปลงเรียก API Java เพื่อฤดูใบไม้ผลิ SimpleJdbcTemplateซึ่งส่งกลับลงไปในไม่เปลี่ยนรูปสกาล่าjava.util.List<T> HashSetตัวอย่างเช่น: val l: java.util.List[String] = javaApi.query( ... ) val s: HashSet[String] = //make a set from l ดูเหมือนว่าจะได้ผล ยินดีรับคำติชม! import scala.collection.immutable.Set import scala.collection.jcl.Buffer val s: scala.collection.Set[String] = Set(Buffer(javaApi.query( ... ) ) : …

1
ขีดล่าง Scala - ข้อผิดพลาด: ไม่มีประเภทพารามิเตอร์สำหรับฟังก์ชันขยาย
ฉันรู้ว่ามีคำถามค่อนข้างน้อยเกี่ยวกับเรื่องนี้ แต่ฉันได้สร้างตัวอย่างง่ายๆที่ฉันคิดว่าน่าจะใช้ได้ แต่ก็ยังทำไม่ได้และฉันไม่แน่ใจว่าทำไม val myStrings = new Array[String](3) // do some string initialization // this works myStrings.foreach(println(_)) // ERROR: missing parameter type for expanded function myStrings.foreach(println(_.toString)) ใครสามารถอธิบายได้ว่าทำไมคำสั่งที่สองไม่รวบรวม?

3
จะแสดงข้อความล้มเหลวแบบกำหนดเองใน ScalaTest ได้อย่างไร?
ไม่มีใครรู้วิธีแสดงข้อความล้มเหลวแบบกำหนดเองใน ScalaTest? ตัวอย่างเช่น: NumberOfElements() should equal (5) แสดงข้อความต่อไปนี้เมื่อล้มเหลว: 10 ไม่เท่ากับ 5 แต่ฉันต้องการข้อความอธิบายเพิ่มเติมเช่น: NumberOfElements ควรเป็น 5

5
สับสนกับความเข้าใจในการแปลง flatMap / Map
ดูเหมือนฉันจะไม่เข้าใจแผนที่และ FlatMap จริงๆ สิ่งที่ฉันไม่เข้าใจคือความเข้าใจคือลำดับของการเรียกซ้อนไปยังแผนที่และ flatMap อย่างไร ตัวอย่างต่อไปนี้มาจากFunctional Programming ใน Scala def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = for { f <- mkMatcher(pat) g <- mkMatcher(pat2) } yield f(s) && g(s) แปลเป็น def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = mkMatcher(pat) flatMap (f => mkMatcher(pat2) map (g => f(s) && g(s))) วิธี mkMatcher ถูกกำหนดไว้ดังนี้: def mkMatcher(pat:String):Option[String => Boolean] = pattern(pat) …


3
param: _ * หมายความว่าอย่างไรใน Scala
ยังใหม่สำหรับ Scala (2.9.1) ฉันมีList[Event]และต้องการคัดลอกลงใน a Queue[Event]แต่ไวยากรณ์ต่อไปนี้ให้ผลQueue[List[Event]]แทน: val eventQueue = Queue(events) ด้วยเหตุผลบางประการการทำงานต่อไปนี้: val eventQueue = Queue(events : _*) แต่ฉันอยากจะเข้าใจว่ามันทำอะไรและทำไมมันถึงได้ผล? ฉันดูลายเซ็นของQueue.applyฟังก์ชันแล้ว: def apply[A](elems: A*) และฉันเข้าใจว่าทำไมความพยายามครั้งแรกไม่ได้ผล แต่ความหมายของครั้งที่สองคืออะไร? คืออะไร:และ_*ในกรณีนี้และทำไมapplyฟังก์ชั่นไม่ใช้เพียงแค่Iterable[A]?

6
Scala ตรวจสอบว่ามีองค์ประกอบอยู่ในรายการหรือไม่
ฉันต้องการตรวจสอบว่ามีสตริงอยู่ในรายการหรือไม่และเรียกใช้ฟังก์ชันที่รับบูลีนตามนั้น เป็นไปได้ไหมที่จะทำสิ่งนี้ด้วยซับเดียว? รหัสด้านล่างนี้ดีที่สุดที่ฉันจะได้รับ: val strings = List("a", "b", "c") val myString = "a" strings.find(x=>x == myString) match { case Some(_) => myFunction(true) case None => myFunction(false) } ฉันแน่ใจว่าเป็นไปได้ที่จะทำสิ่งนี้โดยใช้การเข้ารหัสน้อยลง แต่ฉันไม่รู้วิธี!
87 string  list  scala  find 

10
แยกค่าคอลัมน์ของ Dataframe เป็น List ใน Apache Spark
ฉันต้องการแปลงคอลัมน์สตริงของกรอบข้อมูลเป็นรายการ สิ่งที่ฉันสามารถหาได้จากDataframeAPI คือ RDD ดังนั้นฉันจึงลองแปลงกลับเป็น RDD ก่อนจากนั้นจึงใช้toArrayฟังก์ชันกับ RDD ในกรณีนี้ความยาวและ SQL ทำงานได้ดี อย่างไรก็ตามผลที่ผมได้จาก RDD [A00001]มีวงเล็บรอบองค์ประกอบเช่นนี้ทุก ฉันสงสัยว่ามีวิธีที่เหมาะสมในการแปลงคอลัมน์เป็นรายการหรือวิธีลบวงเล็บเหลี่ยม ข้อเสนอแนะใด ๆ จะได้รับการชื่นชม ขอขอบคุณ!

3
Reader Monad สำหรับ Dependency Injection: การอ้างอิงหลายครั้งการเรียกซ้อนกัน
เมื่อถูกถามเกี่ยวกับ Dependency Injection ใน Scala คำตอบจำนวนมากชี้ไปที่การใช้ Reader Monad ไม่ว่าจะเป็นคำตอบจาก Scalaz หรือเพียงแค่หมุนของคุณเอง มีจำนวนของบทความที่ชัดเจนมากอธิบายพื้นฐานของวิธีการ (เช่นมีการพูดคุย Runar ของ , บล็อกของเจสัน ) แต่ผมไม่ได้จัดการเพื่อหาตัวอย่างที่สมบูรณ์มากขึ้นและผมไม่เห็นข้อดีของวิธีการที่มากกว่าเช่นขึ้น DI "manual" แบบดั้งเดิม (ดูคำแนะนำที่ฉันเขียน ) ส่วนใหญ่ฉันอาจพลาดประเด็นสำคัญบางอย่างดังนั้นคำถามนี้ ตัวอย่างเช่นสมมติว่าเรามีคลาสเหล่านี้: trait Datastore { def runQuery(query: String): List[String] } trait EmailServer { def sendEmail(to: String, content: String): Unit } class FindUsers(datastore: Datastore) { def inactive(): …


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.