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