6
मैं एन, जहां यह है कि जाना जाता है पर आकार एस की एक सूची विभाजित करने के लिए एस के एन, एम योग अप यह संकलन नहीं है कोशिश कर रहा हूँ:कैसे उपयोग कर एक स्केला सूची splitAt को निराकार
def splitIt[N <: Nat,
M <: Nat,
S <: Nat](u: Sized[List[Int], N] {type A = N},
v: Sized[List[Int], M] {type A = M},
t: Sized[List[Int], S] {type A = S})(implicit sum: SumAux[N, M, S]): Unit = {
val z = t.splitAt[N]
}
त्रुटियाँ
No implicit view available from List[Int] => scala.collection.GenTraversableLike[S,List[Int]].
not enough arguments for method sizedOps: (implicit evidence$2: List[Int] => scala.collection.GenTraversableLike[S,List[Int]])shapeless.SizedOps[S,List[Int],S]. Unspecified value parameter evidence$2.
अंतिम सही संस्करण
def splitIt[N <: Nat,
M <: Nat, S <: Nat](u: Sized[List[Int], N] {type A = Int},
v: Sized[List[Int], M] {type A = Int},
t: Sized[List[Int], S] {type A = Int})(implicit sum: DiffAux[S, N, M], toInt: ToInt[N]): Unit = {
val z = t.splitAt[N]
}
+1, लेकिन यह केवल पहला कदम है 'SumAux [N, M, S]' आपको 'डिफ [एस, एन]' नहीं मिला है, आपको सूची को विभाजित करने की आवश्यकता है (दुर्भाग्य से), और आपको 'एन' के लिए 'ToInt' भी जोड़ना होगा। –
ने 'ए' को बदल दिया और 'toInt' अंतर्निहित जोड़ा। 'डिफ' कैसे जोड़ें? – Peteris
@ पीटरिस: आप 'SumAux' को हटा सकते हैं (जब तक कि आपको इसे अपने वास्तविक कोड में किसी अन्य कारण के लिए आवश्यकता न हो) और 'डिफ [एस, एन]' या 'डिफएक्स [एस, एन, एम]' जोड़ें। –