[web-devel] Setting variables in hamlet forall

Michael Snoyman michael at snoyman.com
Thu Apr 7 11:15:40 CEST 2011


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/web-devel/attachments/20110407/b634a3e6/attachment.htm>


More information about the web-devel mailing list