CONSTANT: reception-per-head 60

USE: literals
${ venue-hire reception } sum

Etc.  Good luck!
On Feb 20, 2012 4:20 AM, "Luke Worth" <l...@worth.id.au> wrote:

> Hi,
>
> As a long time Haskell fan, I've often wanted to write simple declarative
> code but found this a little too verbose in Factor. e.g. Here is my price
> calculations for a wedding reception:
>
> : receptionPerHead ( -- price ) 60 ;
> : receptionAttendants ( -- price ) 50 ;
> : reception ( -- price ) receptionPerHead receptionAttendants * ;
> : venueHire ( -- price ) 2800 ;
> : total ( -- price ) [ venueHire , reception , ] { } make sum ;
>
>
> Extrapolate this to about 5x the size and you have my actual wedding
> budget. I think this contains too much programming stuff, making it hard to
> read compared to the Haskell version:
>
> receptionPerHead = 60
> receptionAttendants = 50
> reception = receptionPerHead * receptionAttendants
> venueHire = 2800
> total = sum [venueHire, reception]
>
>
> So what I did was make:
>
> SYNTAX: D:
>     CREATE-WORD
>     parse-definition
>     (( -- x ))
>     define-declared ;
>
> so the factor code now looks like:
>
> D: receptionPerHead 60 ;
> D: receptionAttendants 50 ;
> D: reception receptionPerHead receptionAttendants * ;
> D: venueHire 2800 ;
> D: total [ venueHire , reception , ] { } make sum ;
>
>
> I like this better but the total still doesn't read quite nicely. I'd
> prefer something like
>
> { venueHire reception } sum
>
>
> ... but that seems like I'd have to write special syntax to evaluate the
> words in the literal.
>
> My questions are:
>
>    1. Is what I'm doing idiomatic Factor?
>    2. Is there a better, completely different way of doing all of this
>    (i.e. using Factor like a spreadsheet)?
>    3. Is there a way of defining constants so they are substituted at
>    parse-time?
>
>
> Thankyou,
> Luke
>
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to