[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [spr7631] Defining a Macro
>> It's not really clear from your message what you want your macro to do. ...
I would like to construct RHET Statements for inserting facts in the RHET
database. --RHET is a knowledge representation tool developed at the University of
Rochester--. Facts are represented in RHET by expressions of the form
[pred-name arg0 .. argn].
For example [Parent [John] [Mary]] may be interpreted as "John is a parent of
Mary" or [Dog [Snoopi]] for "Snoopi is a dog".
And what I want is a macro or function that for example takes two arguments,
arg1 and arg2, and constructs an expression representing the fact "arg2 ist a
arg1"; .i.e., [arg1 [arg2]].
To resume I like to define a function 'build-rhet-axiom' such that the evaluation
of (build-rhet-axiom 'dog 'snoopi) returns the expression '[dog [snoopi]].
As I reported in my previous message the simple definition
(defmacro BUILD-MY-EXPRESSION (arg1 arg2)
`'(rassert [,arg1 [,arg2]]))
didn't work; the evaluation of the form (BUILD-MY-EXPRESSION 'test1 'test2)
returned (rassert [,arg1 [,arg2]]) instead of (rassert [test1 [test2]]).
It worked as soon as I replace the square brackets by any other alphabetic
character.
I hope the formulation of the problem is now clear enough.
Sorry for the inconveniences my first message might be caused.
Regards,
--akd.