home *** CD-ROM | disk | FTP | other *** search
- Differences between versions 3.0 and 3.1 of SB-Prolog
- =====================================================
-
- 1. The builtin predicate $getenv/2 has disappeared (it wasn't obvious that
- this was used often enough to justify having it as a builtin). The way
- the environment variable SIMPATH is accessed has changed: it is now
- accessed once, when SB-Prolog is started up. This is more efficient,
- but changes to SIMPATH after startup are now invisible to the system.
-
- 2. Arithmetic expressions (within is/2 and the various relational
- predicates can now contain functional syntax. This is just syntactic
- sugar, and is converted to a relational syntax for execution (so
- listing/{0,1}, clause/{2,3} may show something different). Thus,
- code of the form "X is 1 + sqrt(Y)" is allowed: it is converted to
-
- square(U, Y), X is 1 + U
-
- where U is a new variable. The new evaluable functors are the following:
-
- sqrt/1 (square root)
- square/1 (square)
- integer/1 (convert number to integer)
- float/1 (convert number to float)
- exp/1 (exponential)
- ln/1 (natural logarithm)
- sin/1 (sine)
- arcsin/1 (inverse sine)
-
- 3. Floating point unification has been changed so that it is no longer
- "fuzzy". In previous versions, two numbers were considered equal if
- they were "sufficiently close" to each other; now, two numbers must
- have the same value to be considered equal.
-
- However, there is still no need for explicit type conversions when
- unifying integers and floats.
-
-