reservadas programas palabras ingresar herencia empezando ejemplos datos contador con como comentarios clases scala combinatory-logic

palabras - programas de scala



Equivalente al método#tap de Ruby en Scala (1)

Aquí hay una implementación en github: https://gist.github.com/akiellor/1308190

Reproduciendo aquí:

import collection.mutable.MutableList import Tap._ class Tap[A](any: A) { def tap(f: (A) => Unit): A = { f(any) any } } object Tap { implicit def tap[A](toTap: A): Tap[A] = new Tap(toTap) } MutableList[String]().tap({m:MutableList[String] => m += "Blah" }) MutableList[String]().tap(_ += "Blah") MutableList[String]().tap({ l => l += "Blah" l += "Blah" })

Esta pregunta ya tiene una respuesta aquí:

Ruby tiene un método que nos permite observar una tubería de valores, sin modificar el valor subyacente:

# Ruby list.tap{|o| p o}.map{|o| 2*o}.tap{|o| p o}

¿Hay tal método en Scala? Creo que esto se llama Kestrel Combinator, pero no estoy seguro.