On 3/7/07, Ernest Friedman-Hill <[EMAIL PROTECTED]> wrote:
I put it to a vote on the list about 18 months ago whether Jess ought
to relax this restriction, and very surprisingly, most people who
responded wanted to keep things the way they are; perhaps they
misunderstood the question. I may have to make an executive decision
on this one and change things anyway.
I don't find it surprising, since a STRING isn't a SYMBOL. They
shouldn't match unless they are equal for Java equals() and Jess
function eq. Having a difference would make things more
inscrutable, not more simple.
If it is determined they ought to be equal for pattern matching,
equals(), and eq for the sake of simplicity -- then why have two
types at all? Just reduce everything to type SYMBOL or type STRING.
Is one a subtype of the other? (Java nit: why isn't there a
java.lang.Symbol class?)
If there is no important difference, then instead of making them
match, why not just deprecate RU.STRING or RU.SYMBOL in the next
iteration of Jess?
If there is a meaningful difference, perhaps symbols or strings
should have different default toString() methods. Perhaps a
character prefix on symbols would work.
- Mike