Введите вывод справа налево - PullRequest
7 голосов
/ 28 сентября 2011

Я создал следующий фрагмент кода:

class PimpToRight[A](f: A => Boolean) {
  def <| (a: A) = f(a)
}
implicit def f2pimp[A](f: A => Boolean) = new PimpToRight(f)

class PimpToLeft[A](a: A) {
  def <|: (f: A => Boolean) = f(a)
  def |> (f: A => Boolean) = f(a)
}
implicit def a2pimp[A](a: A) = new PimpToLeft(a)

Доступны правосторонние и левоассоциативные методы.

Работает следующий код:

((_: Int) > 3) <| 7
((_: Int) > 3) <|: 7
7 |> (_ > 3)

Но этоне:

(_ > 3) <| 7
(_ > 3) <|: 7

Можно ли вывести параметры типа справа налево?

1 Ответ

5 голосов
/ 28 сентября 2011

Эти две проблемы связаны: SI-4773 и SI-1980 .Исходя из этих вопросов, ответ на ваш вопрос, кажется, нет.Хотя это и не имеет прямого отношения к вашему вопросу, есть очень приятный пост Поля Чьюзано о , который максимально использует вывод типов в Scala , в котором рассматривается текущее состояние вывода типов в Scala и даются некоторые полезные советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...