Я пытаюсь понять следующий фрагмент кода (из библиотеки Scalaz):Scala: вопросительные знаки в типе параметров
def kleisliIdApplicative[R]: Applicative[Kleisli[Id, R, ?]] = ...
Я предполагаю, что тип формы T[P0, ?]
является тип- конструктор, который принимает параметр. Однако я не могу найти документацию, которая объясняет использование вопросительных знаков в параметрах типа.
Связанный с этим вопрос в чем разница между вопросительным знаком и подчеркиванием?
Есть ли место, где все это хорошо документировано?
Что вы обозначаете здесь с помощью '# L'? Это выражение не компилируется для меня в Scala 2.11 – Matthias
@Matthias L - это член типа, определенный внутри анонимного типа (т. Е. Блок {}). Он должен скомпилировать, какую ошибку вы получите? –
': 1: error: ';' ожидаемый, но «#» найден. ' ' ({type L [A] = Либо [Int, A]}) # L' ^ –
Matthias