Whilst you may not see it as a big deal, proper use of the Box, Full,
Empty idioms really save LOC over time and you can start to write code
that is more functional in nature - for comprehensions are a neat
example.

I guess im saying "try it, you might like it"

Cheers, Tim

On Nov 16, 10:08 am, DMB <combust...@gmail.com> wrote:
> Except if there's no cookie, in almost all cases I'll likely want to
> branch and do something else (write out a cookie, for instance), and
> the non-evaluation of stuff doesn't help me much with that.
>
> And there is checking, and memory allocation / deallocation hidden in
> the for comprehension and Box anyway. It's neither expensive, nor
> verbose, so I don't see null checking as a big deal.
>
> On Nov 16, 1:45 am, Sergey Andreev <andser...@gmail.com> wrote:
>
>
>
> > To avoid null checking. If there is no cookie, you will get Empty otherwise
> > Full(cookie). Moreover with for-comprehensions you don't need any checks at
> > all. If there is no cookie then the doSomethingWithValue won't be evaluated.
>
> > On Mon, Nov 16, 2009 at 12:34 PM, DMB <combust...@gmail.com> wrote:
>
> > > I guess that could work, but why go to such lengths where there are
> > > much more straightforward solutions available? What do for
> > > comprehensions buy you in this case? I mean, 99% of the time, when I
> > > want to check for a cookie, I don't need the cookie itself or any of
> > > its properties. I need its value, or null if there's no cookie. Why
> > > not do something a-la RoR:
>
> > > S.cookieValue("cookieName")
>
> > > or a-la ASP.NET:
>
> > > val c = S.cookie("cookieName")
> > > if(c != null) {
> > >   val v = c.value
> > > }
>
> > > Or, indeed, both?
>
> > > On Nov 16, 1:22 am, Sergey Andreev <andser...@gmail.com> wrote:
> > > > Hi,
>
> > > > For-comprehensions could help you out:
>
> > > > for{
> > > >   cookie <- S.findCookie(cookieName)
> > > >   value <- cookie} doSomethingWithValue
>
> > > > Regards
>
> > > > On Mon, Nov 16, 2009 at 12:07 PM, DMB <combust...@gmail.com> wrote:
>
> > > > > When I call findCookie it returns a Box. Then, the value on the cookie
> > > > > itself is also a box. Hence a ruby one-liner turns into something
> > > > > like:
>
> > > > > val cookie = S.findCookie(cookieName)
> > > > > if(cookie.isDefined) {
> > > > >     val cookieVal = cookie.open_!.value.openOr(null)
> > > > >     // Do something with the cookie value
> > > > > }
>
> > > > > This is very ugly, so I'm guessing I'm doing something wrong, but try
> > > > > as I might, I could not find any examples that would look even vaguely
> > > > > "right" to me.
>
> > > > > Why can't findCookie return a simple, unboxed HTTPCookie object or
> > > > > null if cookie is not found?
> > > > > Why does the value inside a cookie need to also be Box'ed?
>
> > > > > For the sake of comparison, here's how you do the same thing in RoR:
> > > > > v = cookies["cookieName"]
> > > > > // Do something with the cookie
>
> > > > > or ASP.NET:
> > > > > var c = Request.Cookies["CookieName"]
> > > > > if(c != null) {
> > > > >   var v = c.Value
> > > > >   // Do something with the cookie
> > > > > }
>
> > > > > I fail to see why Lift should be more complicated.
>
> > > > > This is with Lift 1.1 M7
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to