Czy w Scali można używać ogólnych parametrów typu z definicjami * funkcji *?

Czy istnieje składnia zezwalająca na ogólne parametry typu na literałach funkcji? Wiem, że mogę go owinąć w metodę taką jak:

def createLongStringFunction[T](): (T) => Boolean = {
  (obj: T) => obj.toString.length > 7
}

ale w końcu potrzebuję wywołać metodę dla każdego typu T i uzyskać nową funkcję. Przejrzałem odnośnik do języka i widzę, że składnia literału funkcji jest tłumaczona przez kompilator na instancję aFunctionn obiekt, który sam ma ogólne typy danych wejściowych, wygląda na to, że magia kompilatora realizuje te parametry w momencie tworzenia. Nie znalazłem żadnej składni, która pozwalałaby mi na „pozostawienie jednego lub więcej parametrów typuFunctionn unbound ”. To, co wolałbym, to coś w rodzaju:

// doesn't compile
val longStringFunction: [T](T) => Boolean = (obj: T) => obj.toString.length > 7

Czy istnieje coś takiego? Lub o to chodzi, jaki jest wyraźny typ funkcji rozszerzenia eta, gdy rozwijana metoda ma ogólne parametry?

Jest to czysto wymyślny i bezużyteczny przykład. Oczywiście mogłem po prostu sprawić, żeby funkcja użyła Dowolnego tutaj.

questionAnswers(4)

yourAnswerToTheQuestion