Давайте предположим, что у меня есть размораживание, который принимает несколько параметров типа:В Scala, возможно ли «curry» типа параметров def?
def foo[A, B, C](b: B, c: C)(implicit ev: Writer[A])
Однако предполагаемое использование является то, что параметры типа B
и C
должны быть выведены (основано на переданном в аргументе). И вызывающему абоненту должно быть нужно только явно указать A
(например, чтобы иметь соответствующий имплицитный, выбранный компилятором). К сожалению, Scala позволяет только всем или любым параметрам типа указывать вызывающий. В некотором смысле, я хочу параметры типа для дубления:
def foo[A][B, C]...
Есть ли какой-то трюк, чтобы сделать это в Scala?
(Если мой конкретный пример не имеет полный смысл, я счастлив, чтобы улучшить его с предложениями.)
Очень хорошо написано и очень умно! – Alec