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

Reply via email to