Я хочу оставить отпечаток позади как
"foo" match {
case str => println(str)
}
или
List("foo") foreach print
Есть ли другой лучший?
как в Haskell
return "foo" >>= print
Подойдет ли вам "foo".print()?





поэтому, если вы просто хотите иметь некоторую семантику, подобную haskell, вы можете попробовать библиотеки кошки или скаляз. у обоих есть монады IO (кошки в эффектах кошек), которые позволят вам использовать print принципиальным образом, как в вашем последнем примере. Если вас не волнует аспект чистоты, вы также можете добиться этого с помощью монады Id, которую также предлагают обе библиотеки.
Ты можешь это сделать:
case class Print(v: String) {
def print = Predef.print(v)
}
object Print {
implicit def stringToString(s: String) = new Print(s)
}
import Print._
object App extends App {
"foo".print
"bar" print
}
Определите, что вы имеете в виду под словом «лучший».