मेरे पास एक एचएलिस्ट है जिसमें प्रत्येक कॉलम किसी तालिका के कॉलम का प्रतिनिधित्व करता है। एचएलिस्ट में प्रत्येक सूची एक ही लंबाई का है।सूची के एचएलआईस्ट के एनएच तत्व को चुनें और मूल्यों के एचएलिस्ट के रूप में उस मान को वापस करें
मैं एक ऐसा फ़ंक्शन लिखने में सक्षम होना चाहता हूं जो इस तालिका के अलग-अलग पंक्तियों को टुपल या मानों के एचएलिस्ट के रूप में चुनता है। आखिर में मैं इसे कुछ और समझदार (जैसे एक केस क्लास) में परिवर्तित कर दूंगा।
import shapeless.PolyDefns.~>
import shapeless.{HList, HNil}
val a = List(1,2,3) :: List("a", "b", "c") :: List(true, false, true) :: HNil
object broken extends (HList ~> HList) {
def apply[T](n:Int, l:HList): HList = {
// I want to pick out the nth element of each HList
// so in the above example, if n==1
// I want to return
// 2 :: "b" :: false :: HNil
???
}
}
broken(1,a)
क्या मैं इस फ़ंक्शन को ठीक कर सकता हूं ताकि यह टिप्पणियों में मैंने जो वर्णन किया है उसके अनुसार काम करता है?
बोनस अंक: क्या मैं इसे एक पुनरावर्तक के रूप में लिख सकता हूं जो मेरे एचएलआईस्ट "ए" को उपरोक्त (इंट, स्ट्रिंग, बूलियन) या समकक्ष एचएलिस्ट के अनुक्रम में बदल देता है?
पॉलिमॉर्फिक कार्यों के बारे में कुछ संबंधित प्रश्न: http://stackoverflow.com/questions/39628068/passing-an-extra-argument-into-a-polymorphic-function http://stackoverflow.com/questions/39628022/using -एक-बहुरूपी-समारोह करने के लिए निकालने-एक वस्तु से-विकल्प –