Didn't we just answer this question the other day on this list? Yes, in older versions of Jess, that last "else" would be interpreted as one of the elements of the first "else" clause, and taking the "else" would execute both function calls. But Jess 7.1 parses if-then-else more carefully, and the repeated "else" is caught and reported as an error.


On Sep 6, 2010, at 2:15 AM, [email protected] wrote:


I observed a difference between 7.1 and 7.0 where an "if" can have multiple "else" was not result an error into 7.0 but 7.1 can catch this wrong block. Is this true or I have misunderstood the thing.

Sample code :

  (if (> 5 9) then

        (printout t "Test -1 ")

        else
                (printout t "Test -2 ")
        else
                (printout t "Test - 3  ")
)

In 7.0 the code results in  :: Test-2 Test-3
While 7.1 :: Exception in thread "main" Jess reported an error in routine Jesp.Jesp.parseFuncall.
  Message: No new blocks after 'else' block in 'if' at token 'else'.


Avdhesh DIXIT
Consultant Specialist | HSBC Technology and Services - Global Technology
HSBC Software Development (India) Private Limited

---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, Livermore, CA 94550
http://www.jessrules.com







--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
in the BODY of a message to [email protected], NOT to the list
(use your own address!) List problems? Notify [email protected].
--------------------------------------------------------------------

Reply via email to