[web-devel] Setting variables in hamlet forall

vagif.verdi at gmail.com vagif.verdi at gmail.com
Thu Apr 7 18:37:53 CEST 2011


On Thursday, April 07, 2011 02:51:40 AM you wrote:
> put me in the opposed category.
> 
> You can just as easily put:
>   let formId rs = fromMaybe "" $ lookup $...
> 
> in the haskell function that loads the hamlet file t

You are missing the point. I cannot put anything inside haskell for a loop 
that is defined inside hamlet. Variable binding must happen inside forall loop, 
and variable is different for each iteration of the loop. It's just used in  
several places inside the loop block. There's no way to help it from the 
outside of the loop.

That's why i am asking for binding only for $forall, because in all other 
cases we can indeed define all often used variables in haskell code.

> hen you just have to
> put #{formId rs}
> 
> in the hamlet.  I think adding syntax should be done only when very
> necessary.  seems like a very small win here at a big cost.
> 
> yes, if you have a situation where many handlers are calling the same
> hamlet file, there might be some duplication, but then you can always
> raise the formId function to a top-level function.
> 
> max
> 
>  On Apr 7, 2011, at 5:15 PM, Michael Snoyman wrote:
> > I've been very hesitant about adding more features to Hamlet, especially
> > ones that are already implemented in Haskell. That's been my reasoning
> > for avoiding any kind of variable definitions until now. However, this
> > does seem like a compelling use case.
> > 
> > I don't think it would make sense to limit it to foralls: it makes as
> > much sense in maybes, and I think it would be confusing if it only
> > applied in some cases. As for syntax, how about:
> > 
> > $forall row <- rs
> > 
> >     $let formId = fromMaybe "" $ IntMap.lookup $ getInt "form_id" row
> >     ...
> > 
> > I'm not 100% sold on this yet, what does everyone else think?
> > 
> > One last note: I'm probably going to be announcing a feature freeze on
> > Yesod 0.8 *very* soon, and making a beta release to Yackage so that
> > people can test. If you have any last-minute input, now's the time. I'm
> > planning on giving the beta test period about a week, and then releasing
> > to Hackage.
> > 
> > Michael
> > 
> > On Thu, Apr 7, 2011 at 2:57 AM, <vagif.verdi at gmail.com> wrote:
> > I noticed a pattern that in hamlet $forall i often retrieve the same
> > value from a map, Sometimes 3,4 times.
> > 
> >    $forall row <- rs
> >    
> >            <td><a href=@{FormR (getInt "form_id" row)}>#{getStr
> >            "form_name"
> > 
> > row}
> > 
> >            <td>#{getStr "docname" row}
> >            ...
> >            <td>#{fromMaybe "" (IntMap.lookup (getInt "form_id" row)
> > 
> > counties)}
> > 
> >            <td>#{fromMaybe "" (IntMap.lookup (getInt "form_id" row)
> > 
> > customers)}
> > 
> > Would it be possible to allow let statement in forall for often used
> > values ?
> > 
> > Regards,
> > Vagif Verdi
> > 
> > _______________________________________________
> > web-devel mailing list
> > web-devel at haskell.org
> > http://www.haskell.org/mailman/listinfo/web-devel
> > 
> > _______________________________________________
> > web-devel mailing list
> > web-devel at haskell.org
> > http://www.haskell.org/mailman/listinfo/web-devel



More information about the web-devel mailing list