#8 Syntax of high level Call() function


The current syntax of Call() is: Call(funcname, args),
where funcname is a string (the CLIPS function or
operator) and args is also a strings containing the
arguments separated by whitespace using the CLIPS
syntax. In this way, actually, the Call() function is
almost useless as it corresponds to Eval("(%s %s)" %
(funcname, args)).

Without disallowing current syntax, it can be useful to
allow the second argument of Call() to be either the
string, with current meaning, or a sequence containing
the argument values - possibly cast to CLIPS objects
(using wrapper classes). This could make the code more
readable when it is necessary to pass Strings or
Multifields to CLIPS functions.


  • Francesco Garosi

    Logged In: YES

    Latest CVS implements the possibility to use either the old
    syntax or a single argument of a CLIPS understandable basic
    type or a sequence (as single argument) containing the CLIPS
    function arguments.

  • Francesco Garosi

    Logged In: YES

    The Instance.Send() function suffered of the same syndrome.
    Now the arguments to Instance.Send(), that is, the last
    parameter, can be of the same form as Call(). This has been
    implemented in current CVS and will be present in next file
    release (1.0_06).

    As for Call(), the old syntax is still correct (and will never be

  • Francesco Garosi

    • status: open --> closed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks