23 Apr 01:55
Interesting use of 'fry'
From: Slava Pestov <slava@...>
Subject: Interesting use of 'fry'
Newsgroups: gmane.comp.lang.factor.general
Date: 2008-04-22 23:59:28 GMT
Subject: Interesting use of 'fry'
Newsgroups: gmane.comp.lang.factor.general
Date: 2008-04-22 23:59:28 GMT
Hi all,
I'm working on the web framework and came up with this:
: render-plain-list ( seq component quot -- )
'[ , component>> renderer>> @ ] each ; inline
: render-ordered-list ( seq quot component -- )
<ol> '[ <li> @ </li> ] render-plain-list </ol> ; inline
: render-unordered-list ( seq quot component -- )
<ul> '[ <li> @ </li> ] render-plain-list </ul> ; inline
: render-list ( value renderer quot -- )
over type>> {
{ +plain+ [ render-plain-list ] }
{ +ordered+ [ render-ordered-list ] }
{ +unordered+ [ render-unordered-list ] }
} case ; inline
M: list-renderer render-view*
[ render-view* ] render-list ;
M: list-renderer render-summary*
[ render-summary* ] render-list ;
I think this is a pretty nice use-case for 'fry' and its hard to
imagine how this code could be improved further.
Slava
(Continue reading)
Slava
On Apr 22, 2008, at 7:18 PM, Chris Double wrote:
> Maybe use multimethods to get rid of the case and the
> render-plain-list, render-ordered-list, etc? Or does this interfere
> with the need to inline the code since it uses quotations? The fry
> stuff does make it look nice.
>
> Chris.
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save
> $100.
> Use priority code J8TL2D2.
>
RSS Feed