Подтвердить что ты не робот

Является ли черта расширением (A => B) функцией расширения признаков?

Следующий признак Parser[+T] - это признак, который расширяет функцию, которая принимает Input и возвращает a Result[T].

 trait Parser[+T] extends (Input => Result[T])

Правильно ли это?

4b9b3361

Ответ 1

Right.

Input => Result[T] является ярлыком для Function1[Input, Result[T]]. Он имеет метод abstrat

def apply(v1: Input) : Result[T]

который при определении будет фактической реализацией функции.

Синтаксис

Scala позволяет использовать методы, называемые apply молча, то есть для некоторого выражения e, e(x1, ... xn) будет переведен на e.apply(x1, ... xn)

Ответ 2

Почти. Он расширяет функцию [Input, Result [T]] тип функций, которые принимают Inputs в качестве аргументов, и возвращает результат [T] (not T) в качестве результатов. Результат [T] передает информацию об успешном анализе в T или ошибку, возникающую во время сеанса.