Re: What does this mean ?

Oliver Ruebenacker <[email protected]> Wed, 17 Feb 2016 10:53:55 -0500
Newsgroups gmane.comp.lang.scala
Message-ID <CAA=X4OBHb+Sdu1hhW1nfsCdym71W9pZ+yxGAoswtFBHOE_cptg@mail.gmail.com>
     Hello,

  I don't know the receive method's signature, but assuming you are just
looking for an example of a method that takes a partial function:

scala> def m(pf: PartialFunction[Int, String]) : Seq[String] = { (1 to
100).collect(pf) }
m: (pf: PartialFunction[Int,String])Seq[String]

scala> m{case 42 => "Hello!" }
res4: Seq[String] = Vector(Hello!)

     Best, Oliver


On Wed, Feb 17, 2016 at 10:44 AM, Clement Dourval <[email protected]>
wrote:

> and what would be the receive function's signature ?
>
> Le mercredi 17 février 2016 16:22:41 UTC+1, Oliver Ruebenacker a écrit :
>>
>>
>>      Hello,
>>
>>   receive {...} is a call of the "receive" method and short for
>> receive({...})
>>
>>      Best, Oliver
>>
>> On Wed, Feb 17, 2016 at 10:11 AM, Clement Dourval <[email protected]>
>> wrote:
>>
>>> But what does the fact that the "receive" word is not followed by the
>>> '=' sign is meaning ?
>>> receive is suposed to be a function here right ?
>>> is that a kind of averride without having to write the whole signature.
>>>
>>> From where i'm standing, it seems to me that receive is a function with
>>> partial cases depending on the main argument to be Ping typed or other.
>>>
>>> But there is no = sign so what does this mean ?
>>>
>>> Le mercredi 17 février 2016 15:57:49 UTC+1, Oliver Ruebenacker a écrit :
>>>
>>>>
>>>>      Hello,
>>>>
>>>>   The case keyword creates a partial function, e.g.:
>>>>
>>>> scala> val pf: Int => String = { case 42 => "Hello!" }
>>>> pf: Int => String = <function1>
>>>>
>>>> scala> pf(42)
>>>> res1: String = Hello!
>>>>
>>>>      Best, Oliver
>>>>
>>>> On Wed, Feb 17, 2016 at 9:40 AM, Clement Dourval <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi, I'm currently Learning Scala and more precisely, concurrent
>>>>> programming with scala.
>>>>>
>>>>> I found this code :
>>>>>
>>>>> class Pong extends Actor {
>>>>>   def act() {
>>>>>     var pongCount = 0
>>>>>     while (true) {
>>>>>       receive {
>>>>>         case Ping =>
>>>>>           if (pongCount % 1000 == 0)
>>>>>             Console.println("Pong: ping "+pongCount)
>>>>>           sender ! Pong
>>>>>           pongCount = pongCount + 1
>>>>>         case Stop =>
>>>>>           Console.println("Pong: stop")
>>>>>           exit()
>>>>>       }
>>>>>     }
>>>>>   }
>>>>> }
>>>>>
>>>>> This is from a tutorial, so i'm expecting it to work, the only problem
>>>>> is I do not understand how.
>>>>>
>>>>> The main problem is, how does this code use the case keyword since
>>>>> there is no match !
>>>>> (adress of the tutorial : http://www.scala-lang.org/old/node/242)
>>>>>
>>>>> Anyway, i understood what was the tutorial was supposed to do (with
>>>>> ping pong), I just don't understand what is written, I'd like to be able to
>>>>> write it myself.
>>>>> But it seems i'm missing some syntax subtleties
>>>>> And even if these are deprecated, i found the same synthax with the
>>>>> akka Library ! So I'm asking myself how to read this.
>>>>>
>>>>> Anyone can help ? 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].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Oliver Ruebenacker
>>>> Senior Software Engineer, Diabetes Portal
>>>> <http://www.type2diabetesgenetics.org/>, Broad Institute
>>>> <http://www.broadinstitute.org/>
>>>>
>>>> --
>>> 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.
>>>
>>
>>
>>
>> --
>> Oliver Ruebenacker
>> Senior Software Engineer, Diabetes Portal
>> <http://www.type2diabetesgenetics.org/>, Broad Institute
>> <http://www.broadinstitute.org/>
>>
>> --
> 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.
>



-- 
Oliver Ruebenacker
Senior Software Engineer, Diabetes Portal
<http://www.type2diabetesgenetics.org/>, Broad Institute
<http://www.broadinstitute.org/>

-- 
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.