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

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

3
ไวยากรณ์ซ้ำกันสำหรับการกำหนดฟังก์ชั่นที่มีชื่อเป็นการตัดสินใจออกแบบภาษาที่ไม่ดีหรือไม่?
ฉันกำลังจำลองภาษาการเขียนโปรแกรมเพื่อความสนุกสนานและไวยากรณ์ได้รับอิทธิพลอย่างมากจาก Scala - คำจำกัดความของฟังก์ชันเฉพาะ ฉันได้พบปัญหาการออกแบบเพราะภาษาของฉันไม่ได้แยกความแตกต่างระหว่างการทำงานที่กำหนดไว้ผ่านทางdefไวยากรณ์ (วิธีการเรียน) และฟังก์ชั่นที่ไม่ระบุชื่อที่ได้รับมอบหมายให้เป็นค่า (สร้างขึ้นโดยใช้=>) - มันเอาความแตกต่างทั้งในการดำเนินงานและพฤติกรรม ผลลัพธ์คือนิยามสองคำต่อไปนี้หมายถึงสิ่งเดียวกัน: def square(x: Int) = x*x val square = (x: Int) => x*x ไม่มีเหตุผลสำหรับแบบฟอร์มหลัง (การกำหนดฟังก์ชันที่ไม่ระบุชื่อแบบทันที) ที่จะใช้ในสถานการณ์ปกติใด ๆ - เป็นไปได้ที่จะใช้แทนdefแบบฟอร์ม จะมีไวยากรณ์ที่ซ้ำกันดังกล่าวสำหรับการกำหนดฟังก์ชั่นที่มีชื่อทำร้ายความ orthogonality ของภาษาหรือด้านการออกแบบอื่น ๆ ? ฉันชอบโซลูชันนี้เพราะช่วยให้คำจำกัดความสั้น ๆ และใช้งานง่ายของวิธีการและฟังก์ชั่นที่มีชื่อ (ผ่านdef) และคำจำกัดความสั้น ๆ ของฟังก์ชั่นที่ไม่ระบุชื่อ (ใช้=>) แก้ไข: Scala จะแยกความแตกต่างระหว่างสอง - ฟังก์ชั่นที่ไม่ระบุชื่อไม่เหมือนกับวิธีที่กำหนดด้วยdefใน Scala ความแตกต่างนั้นค่อนข้างบอบบาง - …

2
การเรียนรู้สกาล่ารู้สึกท้อแท้ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมาจากพื้นหลัง Java และพยายามเรียนรู้สกาล่า ในขณะที่ฉันรู้สึกแย่มากดูเหมือนว่าจะมีอะไรมากกว่านี้ที่จะเรียนรู้กับสกาล่าวิธีการต่าง ๆ มากมายในการทำสิ่งเดียวกัน ฉันสงสัยว่าใครมีคำแนะนำใด ๆ เกี่ยวกับการเริ่มต้นและใช้เวลานานแค่ไหนที่พวกเขาจะรู้สึกมีความสามารถพอสมควรในภาษา? แม้แต่เรื่องเล็ก ๆ น้อย ๆ เช่นความเข้าใจในวงวนก็มีพลังมาก แต่ก็เป็นเพียงส่วนหนึ่งของไวยากรณ์ที่คุณต้องจดจำ!
9 java  scala 

4
ทำไมข้อมูลขนาดใหญ่จำเป็นต้องใช้งานได้?
ฉันเริ่มทำงานในโครงการใหม่ที่เกี่ยวข้องกับ Big Data สำหรับการฝึกงานของฉัน ผู้จัดการของฉันแนะนำให้เริ่มการเรียนรู้การเขียนโปรแกรมฟังก์ชั่น (พวกเขาขอแนะนำสกาล่า) ฉันมีประสบการณ์ที่ต่ำต้อยโดยใช้ F # แต่ฉันไม่เห็นความสำคัญของการใช้กระบวนทัศน์การเขียนโปรแกรมนี้เนื่องจากมีราคาแพงในบางกรณี คณบดีพูดคุยเกี่ยวกับหัวข้อนี้ที่น่าสนใจและแบ่งปันความคิดของเขาว่าทำไม "Big Data" ที่นี่: http://www.youtube.com/watch?v=DFAdLCqDbLQ แต่มันไม่สะดวกเพราะ Big Data ไม่ได้แปล Hadoop เท่านั้น ในฐานะที่เป็น BigData แนวคิดที่คลุมเครือมาก ฉันลืมไปซักพักแล้ว ฉันพยายามหาตัวอย่างง่ายๆหนึ่งตัวอย่างเพื่อเปรียบเทียบระหว่างแง่มุมต่าง ๆ เมื่อเราจัดการกับข้อมูลเพื่อดูว่าวิธีการใช้งานมีราคาแพงหรือไม่ หากการเขียนโปรแกรมเชิงฟังก์ชั่นมีราคาแพงและใช้หน่วยความจำสำหรับข้อมูลขนาดเล็กทำไมเราต้องใช้กับ Big Data? นอกเหนือจากเครื่องมือแฟนซีฉันพยายามสร้างวิธีแก้ปัญหาสำหรับปัญหาเฉพาะและเป็นที่นิยมโดยใช้สามวิธีคือวิธีที่จำเป็นและวิธีการใช้งาน (การเรียกซ้ำโดยใช้คอลเลกชัน) ฉันเปรียบเทียบเวลาและความซับซ้อนเพื่อเปรียบเทียบระหว่างสามแนวทาง ฉันใช้ Scala เพื่อเขียนฟังก์ชันเหล่านี้เนื่องจากเป็นเครื่องมือที่ดีที่สุดในการเขียนอัลกอริทึมโดยใช้กระบวนทัศน์สามแบบ def main(args: Array[String]) { val start = System.currentTimeMillis() // Fibonacci_P val s = …

2
อะไรคือความแตกต่างระหว่างประเภทตนเองและการสืบทอดลักษณะในสกาลา?
เมื่อ Googled มีคำตอบมากมายสำหรับหัวข้อนี้ อย่างไรก็ตามฉันไม่รู้สึกว่าพวกเขาทำงานได้ดีในการอธิบายความแตกต่างระหว่างคุณสมบัติทั้งสองนี้ ดังนั้นฉันอยากลองอีกครั้งโดยเฉพาะ ... อะไรคือสิ่งที่สามารถทำได้กับประเภทตนเองและไม่ได้มีมรดกและในทางกลับกัน? สำหรับฉันมันควรจะมีความแตกต่างเชิงปริมาณระหว่างสองอย่างใดอย่างหนึ่ง หากลักษณะ A ขยาย B หรือประเภทตนเอง B ทั้งคู่ไม่แสดงให้เห็นว่าการเป็น B เป็นข้อกำหนดหรือไม่ ความแตกต่างอยู่ที่ไหน

2
ฉันควรใช้เครื่องหมายอัฒภาคเพื่อคั่นงบ Scala หรือไม่
ฉันเคยคั่นงบด้วยเครื่องหมายอัฒภาคจาก Java ดังนั้นตามปกติฉันก็ทำในรหัส Scala ด้วย ฉันรู้สึกว่ารหัสนั้นอ่านง่ายขึ้นเพราะเห็นได้ชัดว่าคำสั่งหนึ่งจบลงและอีกอันเริ่มต้นขึ้น แต่หลายครั้งเมื่อฉันโพสต์โค้ด Scala บน SO ดังนั้นโค้ดจะได้รับการแก้ไขเพียงเพื่อลบเครื่องหมายอัฒภาค ฉันควรใช้เครื่องหมายอัฒภาคหรือไม่ มีแนวทาง "เป็นทางการ" หรือรูปแบบการเข้ารหัสหรือไม่? มีกรณีที่จำเป็นต้องใช้เครื่องหมายอัฒภาคมิฉะนั้นรหัสจะคลุมเครือหรือไม่

1
ปัญหาของตัวอักษร XML ของ Scala คืออะไร
ในโพสต์นี้ Martin (หัวหน้า honcho ภาษา) เขียน: [ตัวอักษร XML] ดูเหมือนความคิดที่ดีในขณะนี้มันโผล่ออกมาเหมือนนิ้วหัวแม่มือเจ็บ ฉันเชื่อว่าด้วยการแก้ไขสตริงใหม่เราจะสามารถนำการประมวลผล XML ทั้งหมดในห้องสมุดซึ่งน่าจะเป็นชัยชนะครั้งใหญ่ สนใจในการออกแบบภาษาของตัวเองฉันสงสัยว่า: ทำไมเขาเขียนว่ามันเป็นความผิดพลาดที่จะรวมตัวอักษร XML เป็นภาษา? อะไรคือข้อโต้แย้งเกี่ยวกับคุณลักษณะนี้?

9
ทางเลือกระบบปฏิบัติการสำหรับการพัฒนาฟังก์ชั่น [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นนักพัฒนา. NET เป็นหลักดังนั้นฉันจึงใช้ Windows / VisualStudio (นั่นหมายถึง: ฉันนิสัยเสีย) แต่ฉันสนุกกับ Haskell และภาษาอื่น ๆ (ส่วนใหญ่ใช้งานได้) ในเวลาว่าง ตอนนี้สำหรับ Haskell การสนับสนุน windows ก็โอเค (คุณสามารถรับ Haskell-Platform) แต่ latley ฉันพยายามที่จะได้รับสภาพแวดล้อม Clojure / Scheme พื้นฐานติดตั้งและมันก็แค่ความเจ็บปวดบน windows ดังนั้นฉันจึงคิดว่าจะลองใช้ระบบปฏิบัติการอื่นเพื่อการใช้เครื่องมือและการสนับสนุนที่ดีขึ้น แน่นอนว่าทำให้ฉันใช้ MacOS หรือ Linux ได้บ้าง ฉันไม่เคยใช้ MacOS มาก่อนและแน่นอนว่า Linux จะมีราคาถูกกว่า (ฟรี) และฉันไม่คิดว่าฉันจะสามารถบูต MacOS …

3
Getters และ Setters ในภาษาที่ใช้งานได้
หนึ่งในหลักของการเขียนโปรแกรมฟังก์ชั่นคือการใช้ฟังก์ชั่นบริสุทธิ์ ฟังก์ชั่น Pure เป็นฟังก์ชันที่ปราศจากผลข้างเคียงและโปร่งใสอ้างอิง Gettersไม่โปร่งใสในการอ้างอิง - หาก Setter ถูกเรียกระหว่างการเรียกไปยัง Getter ค่าส่งคืนของ Getter จะเปลี่ยนแม้ว่าพารามิเตอร์จะไม่มี (โดยทั่วไปจะไม่มีพารามิเตอร์) Settersสร้างผลข้างเคียง - การเรียก Setter โดยทั่วไปจะจัดการกับค่าที่ไม่ใช่ค่าส่งคืน (อันที่จริงแล้วโดยทั่วไปแล้ว Setter จะไม่ส่งคืนค่าใด ๆ ) ฉันรู้ว่าในสกาล่าเราแค่ยอมรับความจริงที่ว่าเรากำลังผสานสองกระบวนทัศน์ (เชิงหน้าที่และเชิงวัตถุ) และใช้ getters / setters ตามที่เราต้องการในภาษาเช่น Java ในภาษาอย่าง Haskell (ซึ่งฉันไม่คล่องแคล่ว แต่ฉันบอกว่าถือเป็นภาษาที่ใช้งานได้จริง "บริสุทธิ์") ฉันแค่อยากรู้อยากเห็นว่าคุณจะจำลองคุณสมบัติของวัตถุเช่น Getters นั้นมีความโปร่งใสและ Setters ได้อย่างไร ผลข้างเคียงฟรีหรือไม่ วิธีการแก้ปัญหาจะส่งกลับสำเนาของวัตถุที่ setter ถูกเรียกเมื่อเป็นค่าส่งคืนของ setter และสำเนานี้มีการเปลี่ยนแปลงค่าทรัพย์สิน?

5
มีผู้นำที่ชัดเจนในภาษาที่ใช้ JVM หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา สถานะปัจจุบันของโครงการเหล่านี้คืออะไรและมีหนึ่ง (หรือสอง) ปรากฏเป็นผู้นำที่ชัดเจน? เพื่อแสดงให้เห็นถึงแรงจูงใจของฉันในการถามคำถามนี้ลองนึกย้อนกลับไปหลายปี ต้นแบบและ jQuery กำลังเผชิญหน้ากับผู้เล่นอื่นเช่น MooTools ที่ต่อสู้เพื่อเอาชีวิตรอดเช่นกัน กรอไปข้างหน้าอย่างรวดเร็วจนถึงทุกวันนี้และฉันทามติทั่วไปก็คือ jQuery เป็นไลบรารี JavaScript สำหรับวัตถุประสงค์ทั่วไปที่ดีที่สุด ในช่วงหลายปีที่ผ่านมามีสิ่งที่คล้ายกันเกิดขึ้นกับภาษาที่ใช้ JVM หรือไม่ มีบางภาษาตกอยู่ในสภาพทรุดโทรมและถูกทอดทิ้งหรือไม่? จากสิ่งที่ฉันได้อ่านดูเหมือนว่าสกาล่าจะได้รับการเตรียมให้เป็นที่ชื่นชอบอย่างแน่นอน แต่จากนั้นอีกครั้งเกือบทุกอย่างที่ฉันอ่านมานั้นเป็นเวลาหลายปี ฉันได้ทำ bit การวิจัยมากขึ้น - ฉันมีความคิดที่จะตรวจสอบปริมาณการค้นหาปีที่ผ่านมาโดยใช้ Google Trends ดูเหมือนว่า Jython และ JRuby มีความสนใจค่อนข้างน้อยในขณะที่ปริมาณของ Groovy ลดลงและปริมาณของ Scala นั้นคงที่ (แย่ที่สุด) หรือเพิ่มขึ้นเล็กน้อย (ดีที่สุด) นี่เป็นการประเมินที่ถูกต้องหรือไม่? และใช่ฉันหมายถึงภาษาที่ไม่ใช่ Java บน …
9 java  scala  jvm  groovy  jruby 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.