At first I want to introduce me in this forum.
I started in Berlin in the 80s to work with Borland Turbo Prolog and then I developed with PDC Prolog at Daimler-Benz an expert system for configuring vehicles.
As assistent for VIP technical support at the Berlin company Logitek, I visited in those years in Copenhagen PDC Prolog and met Leo Jensen.
As a hobby I developed with Visual Prolog a Scheme interpreter as described in "Structure and Interpretation of Computer Programs" which among other features allows arithmetic operations with integers of many digits (up to several thousand) and AutoLISP style draw commands, with which Lisp programs can generate technical drawings.
Until 2000 I worked with Vip 5.0 but stopped programming in Prolog to work with Smalltalk at a Swiss company.
Now, after 15 years, I want to work again (first as hobby) with Visual Prolog. So what I'm studying new aspects of the language with the Personal Edition. I want to buy very soon the Professional Edition.
But first I have some questions (or criticism to documentation):
In Prolog '=' is the operator for term unification. On the other hand, in conventional programming languages ':=' is the operator for assigning values to variables.
In this code extract from Family Tutorial at AncestorDialog.pro
Code: Select all
domains
optionalString = none(); one(string Value).
class facts
name : optionalString := none().
clauses
tryGetName(Parent) = Name :-
name := none(),
_ = ancestorDialog::display(Parent),
one(Name) = name.
I could not find anywhere in the documentation, when one or the other operator has to be used.
Thank very much for a prompt response.
Greetings from South America.