Ah, that's a good idea. Didn't think of that.

Chas.

Jorge Ortiz wrote:
> Also check out CanSpec.scala to get an idea of how Cans can be used.
> 
> --j
> 
> On Wed, Oct 15, 2008 at 9:33 AM, David Pollak <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
> 
>     Charles,
> 
>     A Can is a container... it can contain a thing or be empty.
> 
>     You can transform the contents of a Can from one thing to another
>     using map().  map() on Can, Option, List is exactly the same as
>     map() on Array in Ruby:
>     irb(main):004:0> [1,2,3].map{|v| v.to_s + " Cats"}
>     => ["1 Cats", "2 Cats", "3 Cats"]
> 
>     This is just like in Scala:
>     scala> List(1,2,3).map(v => v.toString + " Cats")
>     res0: List[java.lang.String] = List(1 Cats, 2 Cats, 3 Cats)
> 
>     In Ruby, when you access the first element of an Array that has no
>     elements, you get 'nil' back.  In Scala, you get an exception.  This
>     allows you to tell the difference between [nil][0] and [][0] which
>     are the same in Ruby.
> 
>     The most syntactically pleasing way of extracting things from List,
>     Can, Option in Scala is the "for" comprehension:
> 
>     scala> for (a <- Some(3);
>          |        b <- Some(4)) yield a * b
>     res1: Option[Int] = Some(12)
> 
> 
>     Does that help?
> 
>     Thanks,
> 
>     David
> 
> 
> 
> 
>     Charles F. Munat wrote:
>>     Thanks. I have read everything I could find on this but I think I'm just 
>>     a bit dense about it. Probably, it's just unfamiliarity with the syntax 
>>     of Scala as a whole and functional programming in general (or maybe I'm 
>>     just stupid). Hopefully, at some point the light bulb will come on and 
>>     this will seem easy. I'll read the blog post.
>>
>>     Chas.
>>
>>     David Pollak wrote:
>>       
>>>     Please also see:
>>>     
>>> http://blog.lostlake.org/index.php?/archives/50-The-Scala-Option-class-and-how-lift-uses-it.html
>>>
>>>     Can[T] is just like Option[T]
>>>
>>>     Marius wrote:
>>>         
>>>>     to get stuff out of a can you can do:
>>>>
>>>>     1. Pattern matching
>>>>
>>>>     having c a Can[String]
>>>>
>>>>     c match {
>>>>       case Full(value) => //do something with the value
>>>>       case _ =>
>>>>     }
>>>>
>>>>     2. call open_!(if you're sure your can is not empty) or openOr
>>>>
>>>>     Br's,
>>>>     Marius
>>>>
>>>>     On Oct 15, 3:22 am, "Charles F. Munat" <[EMAIL PROTECTED]> 
>>>> <mailto:[EMAIL PROTECTED]> wrote:
>>>>       
>>>>           
>>>>>     I must be very dense, but these cans are kicking my butt (kicking my
>>>>>     can?). No matter what I do, I seem to end up with everything back in 
>>>>> the
>>>>>     can! I just... want... to get... the goodies... OUT!
>>>>>
>>>>>     An example:
>>>>>
>>>>>     How do I extract the URI of the current page from S.request?
>>>>>
>>>>>     I am currently doing something immensely stupid and wrong like this:
>>>>>
>>>>>     
>>>>> S.request.toList.head.location.toList.head.createDefaultLink.toList.head.text
>>>>>
>>>>>     I *know* this is way wrong, but I'm not clever enough, apparently, to
>>>>>     figure out the puzzle, despite reading through the Can code 
>>>>> repeatedly.
>>>>>     I figure the above works only because what I'm looking for is there,
>>>>>     which sort of defeats the purpose of the cans...
>>>>>
>>>>>     Can anyone help? This is driving me insane.
>>>>>
>>>>>     Chas.
>>>>>         
>>>>>             
>>>>       
>>>>           
>>       
> 
> 
> 
> 
> > 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to