4
假設我有一個HList
類型A :: B :: C
和函數(A, B, C) => D
。如何用最簡單,最習慣的方式編寫函數A :: B :: C => D
?如何寫A :: B :: C => D給定A :: B :: C和(A,B,C)=> D?
假設我有一個HList
類型A :: B :: C
和函數(A, B, C) => D
。如何用最簡單,最習慣的方式編寫函數A :: B :: C => D
?如何寫A :: B :: C => D給定A :: B :: C和(A,B,C)=> D?
有方法toProduct
在syntax.std.function
:
import shapeless._
import syntax.std.function._
def testf(d: Double, l: Long, i: Int): String = s"$d, $l, $i"
(testf _).toProduct
// Double :: Long :: Int :: HNil => String = <function1>
見Feature overview: shapeless 2.0.0/Facilities for abstracting over arity。