You can see this post for an explanation :
http://duriansoftware.com/joe/Improving-Factor%27s-error-messages.html

On 9/19/10, Jim mack <j...@less2do.com> wrote:
> The simplest way of describing the pure stack effects of if, for a situation
> like this:
>
> t [  ] [  ] if
>
> would be
>
> ( ? quot quot -- )
>
> You could write
> : example ( ? quot quot -- ) if ; inline
> t [ ] [ ] example
>
> ( The idea of inline is beyond my ability to explain.  I add it, like a
> monkey, every time I see a compilation error like "Cannot apply “if” to an
> input parameter of a non-inline word")
>
> Inside the quotation could be stuff that doesn't actually do anything to the
> stack.  I think of the syntax you're asking about as trying to be more
> visually descriptive for a new user, and it's making the point that the most
> common use case would be to transform some thing(s) that are on the stack,
> conditionally.  So, I think ..a could be thought of as "the precondition of
> the stack before if's parameters" and ..b could be the stack condition after
> either path.  This includes the idea of there being no stack as well.  The
> inner parenthetical groups describe the expected stack effect of each branch
> of condition execution, and try to explain that it transforms the stack.
> This syntax is not trying to imply any comment about the depth of the stack.
>
> Jim
>
>
> On Sat, Sep 18, 2010 at 6:23 AM, Fabian Boucsein <
> fabian.boucs...@googlemail.com> wrote:
>
>> Thanks for your answer Anton. But what does the ..a exactly mean?
>> It is a stack effect row variable? Is there a connection with the number
>> of
>> "arguements" it stands for?
>>
>> Greetings,
>> Fabian
>>
>>
>>
>> Anton Gorenko schrieb:
>> > if '?' is t, not '..a'.
>> > http://docs.factorcode.org/content/article-effects.html
>> > http://docs.factorcode.org/content/article-effects-variables.html
>> >
>> > 'true' and 'false' quotations have same stack effects, they take 'a'
>> > (a >= 0) values from the stack and leave 'b' (b >= 0) values on the
>> > stack.
>> > So '3 2 t [ + ] [ - ] if' is correct ('true' and 'false' have ( x x --
>> > x ) stack effect, 'if' has ( x x ? true: ( x x --  x ) false: ( x x --
>> >  x ) -- x ) stack effect in this case), but
>> > '3 2 t [ + + ] [ - ] if', '3 t [ + ] [ - ] if', '3 2 t [ + ] [ 1 ]
>> > if', etc. are incorrect.
>> >
>> > 2010/9/18 Fabian Boucsein <fabian.boucs...@googlemail.com>:
>> >
>> >> Hello Factor mailing list,
>> >>
>> >> i try to understand the definition of "if" in the factor handbook:
>> >> if ( ..a ? true: ( ..a -- ..b ) false: ( ..a -- ..b) -- ..b)
>> >>
>> >> I read if ..a is true execute the true codeblock else the false block
>> >> which is quite clear but what does the last ..b stands for?
>> >> Thanks for your help.
>> >>
>> >> Fabian
>> >>
>> >>
>> >>
>> ------------------------------------------------------------------------------
>> >> Start uncovering the many advantages of virtual appliances
>> >> and start using them to simplify application deployment and
>> >> accelerate your shift to cloud computing.
>> >> http://p.sf.net/sfu/novell-sfdev2dev
>> >> _______________________________________________
>> >> Factor-talk mailing list
>> >> Factor-talk@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/factor-talk
>> >>
>> >>
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Start uncovering the many advantages of virtual appliances
>> > and start using them to simplify application deployment and
>> > accelerate your shift to cloud computing.
>> > http://p.sf.net/sfu/novell-sfdev2dev
>> > _______________________________________________
>> > Factor-talk mailing list
>> > Factor-talk@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/factor-talk
>> >
>> >
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Start uncovering the many advantages of virtual appliances
>> and start using them to simplify application deployment and
>> accelerate your shift to cloud computing.
>> http://p.sf.net/sfu/novell-sfdev2dev
>> _______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>
>
>
>
> --
> Jim
> "I'm for extending the working Medicare program for our seniors all the way
> back to contraception, so Americans can concentrate on living their lives
> without fear of changing a job, going bankrupt from deductibles or fighting
> HMO bureaucracy."
>


-- 
Jon

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to