Hi Gareth,

You might want to look at how frequently shuffle words are used in the
library. For example,

\ -rot usage.

The fact that something simple (converting a d/m/y triple into a
timestamp) requires so much shuffling should alert you that your
approach is wrong. As Doug pointed out, there is a much simpler way:

reverse first3 <date>

Slava

On Wed, Jun 10, 2009 at 7:32 AM, Gareth Morgan<gmorga...@googlemail.com> wrote:
> Hi. I've been trying to refactor some code to remove repetition. Essentially
> I am trying to convert a date of the form { day month year } to a timestamp.
> Originally I had something that looks like this
>
> : el-to-tuple-quot ( n acc -- quot )
>     '[ dup -rot _ swap nth _ call swap ] ; inline
>
> : aday>tuple ( timestamp num-seq -- timestamp num-seq )
>     0 [ >>day ] el-to-tuple-quot call ;
>
> : amonth>tuple ( timestamp num-seq -- timestamp num-seq )
>     1 [ >>month ] el-to-tuple-quot call ;
>
> : ayear>tuple ( timestamp num-seq -- timestamp num-seq )
>     2 [ >>year ] el-to-tuple-quot call ;
>
> : num-date>timestamp ( num-seq -- timestamp )
>     T{ timestamp } swap aday>tuple amonth>tuple
>     ayear>tuple drop ;
>
> I decided that the 'a*>tuple' words were unnecessary and could be replaced
> with an each call
>
> : el-to-tuple-quot ( n acc -- quot )
>     '[ dup -rot _ swap nth _ call swap ] ; inline
>
> : array-to-tuple-quot ( -- quot )
>     [ first2 el-to-tuple-quot call ] ; inline
>
> : num-date>timestamp ( num-seq -- timestamp )
>     T{ timestamp } swap
>     { { 0 [ >>day ] } { 1 [ >>month ] } { 2 [ >>year ] } }
>     array-to-tuple-quot each drop ;
>
> However I now get the 'Got a computed value where a literal quotation was
> expected; ' error. It works fine when called directly on the listener but
> doesn't when running from a vocabulary. I've tried replacing both words that
> return quots with their definitions but get the same error. I've also tried
> fiddling with the inline calls to see if I can get it to work. Anyone know
> what is going on?
>
> Cheers,
> Gareth
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to