X-Comment1: #############################################################
X-Comment2: # uk.ac.glasgow.cs has changed to uk.ac.glasgow.dcs #
X-Comment3: # If this address does not work please ask your mail #
X-Comment4: # administrator to update your NRS & mailer tables. #
X-Comment5: #############################################################
There's been an interesting debate about n+k patterns on this list.
In this message I am only addressing the question of what changes, if
any, should be made to the V1.1 Report (which I am trying to fix in the
light of people's observations).
The only issue seems to me to be this one, raised by Brian:
| o Equality should be symmetric and transitive. Otherwise you're going
| to start wondering whether f 0 = 1; f n = n * f (n-1) is interpre
| ted
| as f n = if n==0 then 1 else n * f (n-1)
| or f n = if 0==n then 1 else n * f (n-1)
|
| This is good example. Should the Report state how implementations are to
| translate matching of constant patterns? Or should it state that
| implementations are free to assume symmetry here?
Actually, the Report *does* state how implemenatations are to translate
constant patterns (page 22). But on looking at it, I see that
k patterns are translated to (k == e)
but
n+k patterns are translated to (e >= k) and (e - k)
While this is unambiguous, it seems rather inconsistent. I suggest
changing the translation of equality to (e == k).
Only change required is page 22, line -11.
Any objections? Any other V1.1 issues?
Simon