equal
deleted
inserted
replaced
413 // the JVM is not as clever as other functional languages. It can |
413 // the JVM is not as clever as other functional languages. It can |
414 // only optimise "self-tail calls". This excludes the cases of |
414 // only optimise "self-tail calls". This excludes the cases of |
415 // multiple functions making tail calls to each other. Well, |
415 // multiple functions making tail calls to each other. Well, |
416 // nothing is perfect. |
416 // nothing is perfect. |
417 |
417 |
418 |
|
419 |
|
420 |
|
421 |
|
422 |
|
423 |
|
424 |
|
425 |
|
426 |
|
427 //************ |
|
428 // Either |
|
429 val either1 : Either[Exception,Int] = Right(1) |
|
430 val either2: Either[Exception, Int] = Right(2) |
|
431 |
|
432 for{ |
|
433 one <- either1 |
|
434 two <- either2 |
|
435 } yield one + two |
|