#8 Syntax of high level Call() function

Francesco Garosi

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.


  • 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.

  • 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

    • status: open --> closed