B](....): Either[A, B] = ???
val res: Either[String, ?] = fn(...)Хочется иметь возможность аннотировать только то, что интересно, а остальные параметры оставить на откуп инференсу.
Причем "?" - это не экзистеншел. Это конкретный тип, и код ниже должен иметь возможность использовать его при тайпчекинге.
Иногда очень не хватает при работе с ZSink и полдюжиной его параметров.
Есть PartiallyApplied паттерн, этакое каррирование тайп параметров
А есть какой-нибудь пример? >>> В скала3 хотели сделать возможность задавать тайппараметры по имени, но не помню, смержили или нет Это я видел, да. Но можно ли задать неполный список параметров?
Примеров полно в либах. https://github.com/tofu-tf/tofu/blob/e489d0c19a9217e03cf6bd8a8a6fa26aaad74eb1/logging/structured/src/main/scala/tofu/logging/LoggableContext.scala#L12
https://dotty.epfl.ch/docs/reference/other-new-features/named-typeargs статус непонятный
Вот это радует, спасибо, не совсем решает мою проблему, но все равно хорошо. Пример из тофу я не понял. Я не хочу аннтрировать параметры вызываемой функции (их вообще может не быть). Хочу частично аннотировать результат. Тайп алаисы тоже не помогают.
вроде import language.experimental.namedTypeArguments
Мне интересно, почему эту фичу не обсуждали. Вроде идея на поверхности. Может в ней какие-то фундаментальные проблемы есть.
кажется, обсуждали, и не раз, но там скорее, не проблемы а костыльность вывода типов для яп вроде скалы
А, окей, не видел. Наверное, утонуло в обсуждении добавления Элвис операторов)
ещё для второй скалы обсуждали
Обсуждают сегодня