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

1
จะใช้ Shapeless ใน Quasiquote ได้อย่างไร?
ฉันพยายามเรียกShapelessแมโครจากข้างในquasiquoteด้วยScalaและฉันไม่ได้สิ่งที่ต้องการ มาโครของฉันไม่ส่งคืนข้อผิดพลาดใด ๆ แต่จะไม่ขยายWitness(fieldName)เข้าไปWitness.Lt[String] val implicits = schema.fields.map { field => val fieldName:String = field.name val fieldType = TypeName(field.valueType.fullName) val in = TermName("implicitField"+fieldName) val tn = TermName(fieldName) val cc = TermName("cc") q"""implicit val $in = Field.apply[$className,$fieldType](Witness($fieldName), ($cc: $className) => $cc.$tn)""" } นี่คือFieldคำจำกัดความของฉัน: sealed abstract class Field[CC, FieldName] { val fieldName: …

2
ข้อ จำกัด ของประเภท Nat ในรูปแบบไม่มีรูปแบบ
ในรูปแบบไม่มีรูปแบบ Nat แสดงวิธีการเข้ารหัสตัวเลขธรรมชาติที่ระดับประเภท ใช้เป็นตัวอย่างสำหรับรายการขนาดคงที่ คุณสามารถทำการคำนวณในระดับประเภทเช่นผนวกรายการของNองค์ประกอบเข้ากับรายการKองค์ประกอบและกลับรายการที่ทราบเวลารวบรวมเพื่อให้มีN+Kองค์ประกอบ การเป็นตัวแทนนี้มีความสามารถในการแสดงจำนวนมากเช่น1000000หรือ 2 53หรือสิ่งนี้จะทำให้คอมไพเลอร์สกาล่าจะยอมแพ้?

4
HLists ไม่มีอะไรมากไปกว่าการเขียนสิ่งที่ซับซ้อน
ฉันสนใจที่จะค้นหาว่ามีความแตกต่างอยู่ที่ใดและโดยทั่วไปแล้วเพื่อระบุกรณีการใช้งานที่เป็นที่ยอมรับซึ่ง HLists ไม่สามารถใช้งานได้ (หรือมากกว่าไม่ให้ผลประโยชน์ใด ๆ กับรายการปกติ) (ฉันรู้ว่ามี 22 (ฉันเชื่อว่า) TupleNในสกาล่าในขณะที่หนึ่งต้องการเพียง HList เดียว แต่นั่นไม่ใช่ความแตกต่างทางแนวคิดที่ฉันสนใจ) ฉันได้ทำเครื่องหมายคำถามสองสามข้อในข้อความด้านล่าง อาจไม่จำเป็นที่จะต้องตอบคำถามพวกเขามีจุดมุ่งหมายที่จะชี้ให้เห็นสิ่งที่ไม่ชัดเจนสำหรับฉันและเพื่อเป็นแนวทางในการสนทนาในบางทิศทาง แรงจูงใจ เมื่อเร็ว ๆ นี้ฉันเคยเห็นคำตอบสองสามข้อเกี่ยวกับ SO ที่ผู้คนแนะนำให้ใช้ HLists (เช่นที่จัดทำโดยShapeless ) รวมถึงคำตอบที่ถูกลบสำหรับคำถามนี้ มันก่อให้เกิดการสนทนานี้ซึ่งจะจุดประกายคำถามนี้ Intro ดูเหมือนว่าสำหรับฉันแล้ว hlists นั้นจะมีประโยชน์ก็ต่อเมื่อคุณรู้จำนวนองค์ประกอบและประเภทที่แม่นยำเท่านั้น จำนวนนั้นไม่สำคัญ แต่ดูเหมือนไม่น่าเป็นไปได้ที่คุณจะต้องสร้างรายการที่มีองค์ประกอบของชนิดที่แตกต่างกัน แต่เป็นที่รู้จักอย่างแน่นอนในแบบสแตติก แต่คุณไม่รู้จักหมายเลขของพวกเขาแบบคงที่ คำถามที่ 1:คุณสามารถเขียนตัวอย่างเช่นในวงได้หรือไม่? สัญชาตญาณของฉันคือการมี hlister ที่แม่นยำแบบคงที่พร้อมด้วยจำนวนองค์ประกอบที่ไม่รู้จักแบบคงที่ (โดยพลการสัมพันธ์กับลำดับชั้นของชั้นเรียนที่กำหนด) ไม่เข้ากัน HLists vs. Tuples ถ้านี่เป็นเรื่องจริงนั่นคือคุณรู้จำนวนและประเภทของคำถาม - คำถามที่ 2:ทำไมไม่ใช้ n-tuple? แน่นอนว่าคุณสามารถทำแผนที่และพับ …
144 scala  types  tuples  hlist  shapeless 

4
เหตุผลใดที่ scala ไม่รองรับประเภทที่อ้างอิงอย่างชัดเจน?
มีประเภทที่ขึ้นอยู่กับเส้นทางและฉันคิดว่ามันเป็นไปได้ที่จะแสดงคุณลักษณะเกือบทั้งหมดของภาษาเช่น Epigram หรือ Agda ใน Scala แต่ฉันสงสัยว่าทำไม Scala ไม่สนับสนุนสิ่งนี้อย่างชัดเจนมากขึ้นเหมือนกับที่ทำในด้านอื่น ๆ (พูด , DSLs)? อะไรที่ฉันขาดหายไปเช่น "มันไม่จำเป็น"?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.