I think Brett Daniel wrote:
> I have a problem where I am trying to establish if a String element in a
> given list A exists in another larger list B.  There are obviously a number
> of ways I can do this in either Jess or in Java.  In Jess, I could use the
> member$ function and iterate through the list B until I have found the
> element (is there the equivalent of "break" to exit a loop in Jess).  In
> Java, I could create a sorted TreeSet and use the "contains" method.
> 
> Which is the most efficient?  How are lists represented in Jess and how does
> the member$ function work?

Jess lists are basically arrays. not linked lists as in Lisp.

member$ asks if a given item is in a given list; you don't have to do
any iteration. It has linear complexity (i.e., it searches linearly
through the list.)

nth$ returns the item at a given index from a list; it is O(1).

Since you mention two lists, you may be interested in their
intersection (see the intersection$ function) or their complement (see
the complement$ function). Both of these are implemented using
HashMaps, and therefore have linear rather than quadratic complexity
(linear because all the items have to get put into the maps.)

There is no "break" in Jess; I'd consider that a useful feature
request, however.


---------------------------------------------------------
Ernest Friedman-Hill  
Science and Engineering PSEs        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

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