Что это значит: карта (1 +) - PullRequest
       3

Что это значит: карта (1 +)

3 голосов
/ 03 февраля 2011

Я имею в виду, я знаю, что это значит: возьмите список и добавьте 1 к каждому элементу в нем;то есть это эквивалентно map (1 + _ ).Что я не понимаю, так это то, как Scala знает , что это эквивалентно.Что здесь происходит?

Редактировать

Даниэль отмечает, что это более общий вопрос.Например

def g(f : Int => Int, x : Int) = f(f(x))
g( (1 + ), 2)
res12: Int = 4

Что круто.Каждый день я нахожу новую полезную вещь, которую может сделать Scala.Я думаю, что я ищу полное описание (и в идеале имя) этой конкретной вещь .

1 Ответ

8 голосов
/ 03 февраля 2011

Это выглядит примерно так:

  1. map ожидает функцию Int => B (в данном случае).
  2. 1 + не разрешает функцию Int => B, поэтому попробуйте другие вещи.
  3. 1 + можно перевести из метода, ожидающего параметр Int, в функцию Int => Int.

Presto.

Один использует 1 + _, чтобы решить неоднозначность.

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