2drop should have stack effect ( x y -- ) . I have no idea why it should
refuse to do that in the compiler. Maybe try replacing it with drop drop ?
Marshall
On Sun, Dec 11, 2011 at 3:13 AM, CW Alston <[email protected]> wrote:
> Greetings, Factorials -
> I've been working through mrjbq7's re-factor utilities, particularly a pet
> interest of mine, ternary search trees.
> Thrilled to see an implementation in Factor, but I can't get the code to
> compile. Here's the error I get with
> *USE: ternary-search-trees* in the listener:
> ----
> *resource:work/ternary-search-trees/ternary-search-trees.factor*
> *
> *
> * 9: <<*
> *12: >>*
> * ^*
> *The word define-maybe cannot be executed because it failed to compile*
> *
> *
> *The input quotations to “if” don't match their expected effects*
> *Input
> Expected Got*
> *[ ~quotation~ ~quotation~ make define-inline ] (( ..a -- ..b )) (( x x
> -- ))*
> *[ 2drop ] (( ..a
> -- ..b )) (( x -- ))*
> ----
>
> '*define-maybe*' is in the required file, *accessors.maybe* -- I planted
> all code in the 'work' directory of factor.
> The untouched code there reads:
> -----
> *USING: accessors arrays kernel make quotations sequences*
> *slots words ;*
> *
> *
> *IN: accessors.maybe*
> *
> *
> *: maybe-word ( name -- word )*
> * "maybe-" prepend "accessors" create ;*
> *
> *
> *: define-maybe ( name -- )*
> * dup maybe-word dup deferred? [*
> * [*
> * over setter-word \ drop 2array >quotation*
> * [ keep ] curry , \ compose ,*
> * swap reader-word [ dup ] swap 1quotation compose*
> * [ [ nip ] ] compose , \ dip , \ if* ,*
> * ] [ ] make ( object quot: ( -- x ) -- value ) define-inline*
> * ] [ 2drop ] if ;*
> *
> *
> *: define-maybe-accessors ( class -- )*
> * "slots" word-prop [*
> * dup read-only>> [ drop ] [ name>> define-maybe ] if*
> * ] each ;*
> -----
>
> I just can't untangle the stack effects in '*define-maybe*' to see where
> the stack is disrupted. Any insights from folks
> better initiated? Note that:
> ---
> *9: <<*
> *12: >>*
> * ^*
> ---
> in the error output (lines 9-12) points to:
> ---
> *<<*
> *TUPLE: tree-node ch value exists lt eq gt ;*
> *tree-node define-maybe-accessors*
> *>>*
> ---
> in file 'ternary-search-trees.factor' .
>
> Thanks, all, and keep up the good work,
> CW Alston
> --
> *~ Memento Amori*
>
>
> ------------------------------------------------------------------------------
> Learn Windows Azure Live! Tuesday, Dec 13, 2011
> Microsoft is holding a special Learn Windows Azure training event for
> developers. It will provide a great way to learn Windows Azure and what it
> provides. You can attend the event by watching it streamed LIVE online.
> Learn more at http://p.sf.net/sfu/ms-windowsazure
> _______________________________________________
> Factor-talk mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>
------------------------------------------------------------------------------
Learn Windows Azure Live! Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for
developers. It will provide a great way to learn Windows Azure and what it
provides. You can attend the event by watching it streamed LIVE online.
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk