Haskell имеет очень удобные функции, называемые first
и second
, которые применяются функции к одному элементу из пары:Scala эквивалент Haskell первого и второго
first fn (a,b) = (fn a, b)
second fn (a,b) = (a, fn b)
ли такие функции, определенные в стандартных библиотеках Scala?
Edit: Я знаю, что это легко определить их, но там, где это возможно, это уборщик, чтобы использовать стандартные функции со стандартными именами ...
def first[A, B, X](fn: A => X)(pair: (A, B)): (X, B) = (fn(pair._1), pair._2)
def second[A, B, X](fn: B => X)(pair: (A, B)): (A, X) = (pair._1, fn(pair._2))
https://github.com/scalaz/scalaz/blob/series/7.3. x/core/src/main/scala/scalaz/Arrow.scala, а не стандартная библиотека, но –
@VictorMoroz, если вы включите это в ответ, я приму это ... – Mohan
Хорошо, но это не «стандартная библиотека», как вопрос был поставлен. –