[~%]brew install scala
==> Downloading http://www.scala-lang.org/files/archive/scala-2.11.1.tgz
######################################################################## 100.0%
==> Downloading https://raw.githubusercontent.com/scala/scala-dist/27bc0c25145a83691e3678c7dda602e765e13413/completion.d/2.9.1/scala
######################################################################## 100.0%
==> Caveats
To use with IntelliJ, set the Scala home to:
/usr/local/opt/scala/idea
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
🍺 /usr/local/Cellar/scala/2.11.1: 45 files, 28M, built in 40 seconds
[~%]scala
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_40).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import scala.util.cont
continuations control
scala> import scala.concurrent._
import scala.concurrent._
scala> import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.ExecutionContext.Implicits.global
scala> Future(1)
res2: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@a99439c
scala> import scala.concurrent.Await
import scala.concurrent.Await
scala> scala.concurrent.Await.result(Future(1), scala.concurrent.duration.Duration("10 seconds"))
res4: Int = 1
scala> scala.concurrent.Await.result(Future{throw new UnsupportedOperationException()}, scala.concurrent.duration.Duration("10 seconds"))
java.lang.UnsupportedOperationException
at $anonfun$1.apply(<console>:18)
at $anonfun$1.apply(<console>:18)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
scala> 1 match { case _ => 1}
res11: Int = 1
scala> scala.concurrent.Await.result(Future{throw new UnsupportedOperationException()}.recoverWith{case _ => Future(1)} , scala.concurrent.duration.Duration("10 seconds"))
res12: Int = 1
scala> List[Future[Int]](Future{1},Future{2} ).map{ x => Future(2) }
res33: List[scala.concurrent.Future[Int]] = List(scala.concurrent.impl.Promise$DefaultPromise@51b4af2c, scala.concurrent.impl.Promise$DefaultPromise@2d589b9c)
scala> val l = List[Future[Int]](Future{1},Future{2} )
l: List[scala.concurrent.Future[Int]] = List(scala.concurrent.impl.Promise$DefaultPromise@75f464de, scala.concurrent.impl.Promise$DefaultPromise@a6752)
scala> scala.concurrent.Future.successful(1)
res46: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$KeptPromise@24afe8e
scala> l.flatMap( x => List(Future.successful(2)) )
res49: List[scala.concurrent.Future[Int]] = List(scala.concurrent.impl.Promise$KeptPromise@550c45fe, scala.concurrent.impl.Promise$KeptPromise@18c75251)
scala> val l2 = l.flatMap( x => List(Future.successful(2)) )
l2: List[scala.concurrent.Future[Int]] = List(scala.concurrent.impl.Promise$KeptPromise@68850e14, scala.concurrent.impl.Promise$KeptPromise@775f78a7)
scala> l2
res50: List[scala.concurrent.Future[Int]] = List(scala.concurrent.impl.Promise$KeptPromise@68850e14, scala.concurrent.impl.Promise$KeptPromise@775f78a7)
scala> List.empty[Int]
res56: List[Int] = List()
scala> scala.concurrent.Future.sequence(l2)
res57: scala.concurrent.Future[List[Int]] = scala.concurrent.impl.Promise$DefaultPromise@2869914a
scala> scala.concurrent.Await.result(res57, scala.concurrent.duration.Duration("10 seconds"))
res58: List[Int] = List(2, 2)
[~%]scala
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_40).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import scala.concurrent.duration._
import scala.concurrent.duration._
scala> import scala.concurrent.duration.Duration
Duration DurationConversions DurationDouble DurationInt DurationLong
scala> import scala.concurrent.duration.Duration._
import scala.concurrent.duration.Duration._
scala> Await.result(Future(1), 10 seconds)
warning: there were 1 feature warning(s); re-run with -feature for details
res1: Int = 1
scala> Await.ready(Future(1), 10 seconds)
warning: there were 1 feature warning(s); re-run with -feature for details
res2: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@7f4afaba
scala> res2.flatMap(x => Future(x))
res9: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@40b7fe45
scala> res9.value
res10: Option[scala.util.Try[Int]] = Some(Success(1))
scala> res9.value.get
res11: scala.util.Try[Int] = Success(1)
scala> res9.value.get.get
res12: Int = 1
scala> res9.collect{case x => x}
res14: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@71dae591
scala> res9.value.get
res16: scala.util.Try[Int] = Success(1)
scala> res16.get
res18: Int = 1
scala> res16.getOrElse(2)
res19: Int = 1
scala> res2.flatMap(x => Future(x))
res20: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@59780a05
scala> res2.flatMap(x => Future{throw new UnsupportedOperationException})
res21: scala.concurrent.Future[Nothing] = scala.concurrent.impl.Promise$DefaultPromise@2ee5d140
scala> res26.recoverWith{case t:Throwable => Future(2)}
res31: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@5f7471a5
scala> Future(1).recoverWith{case t:Throwable => Future(2)}
res33: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@63f99ae2
scala> Future(1).recoverWith{case t:Throwable => Future(2)}
res35: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@4456bdfe
scala> scala.concurrent.Await.result(res35,10 seconds)
warning: there were 1 feature warning(s); re-run with -feature for details
res37: Int = 1
scala> scala.concurrent.Future
Future FutureTaskRunner
scala> scala.concurrent.Future.sequence(List(Future(1),Future(2)))
res38: scala.concurrent.Future[List[Int]] = scala.concurrent.impl.Promise$DefaultPromise@6322d57d
ubuntu@ip-172-31-31-229:$ mv riak_ee / │ 4
mv: cannot move ‘riak_ee’ to ‘/riak_ee’: Permission denied │ 1
ubuntu@ip-172-31-31-229:$ sudo mv riak_ee / │ 1
ubuntu@ip-172-31-31-229:~$ │ 1
configure: creating ./config.status │ 2
config.status: creating tcl/x86_64-unknown-linux-gnu/Makefile │ 1
config.status: creating tcl/win32/Makefile │ 2
configure: configuring in megaco/. │ 3 java7-jdk java7-runtime-headless java7-sdk
configure: running /bin/bash '/home/ubuntu/otp_src_R15B01/lib/megaco/./configure' --prefix=/usr/local '--prefix=/usr/local' '--cache-file=/dev/null' '--srcdir=/home/ubuntu│ 4
/otp_src_R15B01/lib' --cache-file=/dev/null --srcdir=/home/ubuntu/otp_src_R15B01/lib/megaco/. │ 5
[~%]scala
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_40).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import scala.concurrent._
import scala.concurrent._
scala> import scala.concurrent._
import scala.concurrent._
scala> import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.ExecutionContext.Implicits.global
scala> future(1)
warning: there were 1 deprecation warning(s); re-run with -deprecation for details
res1: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@106510ce
scala> import scala.concurrent.Promise
import scala.concurrent.Promise
scala> val p = Promise[Int]()
p: scala.concurrent.Promise[Int] = scala.concurrent.impl.Promise$DefaultPromise@1ad405d8
scala> p.success(1)
res5: p.type = scala.concurrent.impl.Promise$DefaultPromise@1ad405d8
scala> val f = p.future
f: scala.concurrent.Future[Int] = scala.concurrent.impl.Promise$DefaultPromise@1ad405d8
scala> import scala.concurrent.duration._
import scala.concurrent.duration._
scala> import scala.concurrent.duration.Duration
Duration DurationConversions DurationDouble DurationInt DurationLong
scala> Await.result(f,10 seconds)
warning: there were 1 feature warning(s); re-run with -feature for details
res6: Int = 1