[Q] Is a newer version of the Prolog implementation available?

Hannes Hirzel hirzel at spw.unizh.ch
Thu Mar 7 12:50:33 UTC 2002


A follow up:

On Wed, 6 Mar 2002, I wrote:
> 
> 
> 
> The current Squeak Prolog implementation is incomplete in the handling 
> of lists, which makes it actually nearly unusable besides the basic 
> Family tree example.
> 
> 
> An error I found:
> 
> LParser>>nilList   
> ^self send: #new to: 'EmptyList' with: #()
> 
> should probably be
> LParser>>nilList
> ^self send: #new to: #EmptyList with: #()   
> 
> 
> And the class #EmptyList is probably incomplete.
> #EmptyList is implemented as a subclass of #List. I wonder why this
> is necessary.
> 


In the mean time I find out that the class #EmptyList is OK.
It just needs a additional method #emptyList in the parser which 
redirects to  #nilList. I'll replace the #nilList method by the
#emptyList method.



I added two additional textbook examples which work now


1) The implementation of the member/2 predicate

     member(x,[x|_]).
     member(x,[_|r]) :- member(x,r).

     Note that the variables have to be lower case in Squeak Prolog
     overwise they would be considered Squeak globals.


2) An implementation of a DFA parser I got from 
   http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html#1

   It works fine. For me it was important to note that when a goal fails
   I get back the UndefinedObject. When it suceeds I get an array of
   arrays with all the solutions. When I would get 'yes' as an answer
   in Standard Prolog I get an Array with one element which is an empty
   Array. 

   I was stuck by the analogy of maze traversal and DFA parsing.


So far so good. The next thing I'll do is to try to come up with an
Morphic animation of a Prolog problem solving process.
Then I'll post the results. Probably on the SuperSwiki.

And thank you, Henrik Gedenryd, for your updated version.


Cheers
Hannes Hirzel




More information about the Squeak-dev mailing list