Re: Re: Combinators

[email protected]
Newsgroups gmane.comp.lang.scala
Message-ID <[email protected]>
Thanks all,

On Saturday, January 31, 2015 at 11:21:58 AM UTC-6, Simon Schäfer wrote:
>
>  
> On 01/31/2015 05:59 PM, [email protected] <javascript:> wrote:
>  
> Also what is this line doing here? 
>
>    implicit def kestrel[A](a: A) = new {
>
>  What does "new" do in this context? a new function?
>  
> It represents an anonymous class, in short notation:
>
> scala> new {}
> res0: AnyRef = $anon$1@67424e82
>
> scala> new Object {}
> res1: Object = $anon$1@51521cc1
>
>  
> On Saturday, January 31, 2015 at 10:50:05 AM UTC-6, 
> [email protected] wrote: 
>>
>> I started reading Scala in Action as my first Scala book (I've come to 
>> realize this book is way too advanced for beginners, i am struggling 
>> mightily).  
>>
>>  I need help with the following. 
>>
>>  object Combinators {
>>   implicit def kestrel[A](a: A) = new {
>>     def tap(sideEffect: A => Unit): A = {
>>       sideEffect(a)
>>       a
>>     }
>>   }
>> }
>>
>>  case class Person(firstName: String, lastName: String)
>> case class Mailer(mailAddress: String) {
>>   def mail(body: String) = {
>>     println("send mail here...")
>>   }
>> }
>>
>>  object Main {
>>   import Combinators._
>>   def main(args: Array[String]): Unit = {
>>     Person("Nilanjan", "Raychaudhuri").tap(p => {
>>       println("First name " + p.firstName)
>>       Mailer("some address").mail("new person joined " + p)
>>     }).lastName
>>   }
>> }
>>  
>>  My questions are as follows:
>> 1) How does Person automatically get access to "tap"? 
>>  2) What does the implicit keyword do here? (am guessing this might 
>> answer q #1)
>> 3) Any other book suggestions for a Java guy trying to learn Scala. (I've 
>> got about 10 years of Java experience, if that helps).
>>
>>  Thanks in advance. 
>>  
>  -- 
> You received this message because you are subscribed to the Google Groups 
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
> 

-- 
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.