quoth Alberto G. Corona,
Let is recursive because, unlike in the case of other
languages, variables are not locations for storing values, but the
expressions on the right side of the equality themselves. And obviously it
is not possible for a variable-expression to be two expressions at the
Donn Cave d...@avvanta.com wrote:
Let is recursive because, unlike in the case of other languages,
variables are not locations for storing values, but the expressions
on the right side of the equality themselves. And obviously it is
not possible for a variable-expression to be two
Totality checking will generate a lot of false positives.
One would like an analysis that prints an error message if an expression
is *definitely* looping in all cases. While I have studied termination,
I have not studied non-termination analyses. It is harder than
termination. For
On 10.07.13 6:00 PM, Donn Cave wrote:
quoth Alberto G. Corona,
Let is recursive because, unlike in the case of other
languages, variables are not locations for storing values, but the
expressions on the right side of the equality themselves. And obviously it
is not possible for a
quoth Andreas Abel andreas.a...@ifi.lmu.de,
...
I would doubt that nhc98 would interpret let xs = 0 : xs differently
than ghc if it implemented anything close to the Haskell 98 standard.
What I (so vaguely) remember was a compile error, for some reuse of
an identifier where GHC permitted
On 11/07/2013, at 4:00 AM, Donn Cave wrote:
I've gone to some trouble to dig up an nhc98 install (but can't seem to
find one among my computers and GHC 7 won't build the source thanks to
library re-orgs etc.) Because, I vaguely recall that nhc98's rules
were different here? Anyone in a
On 11/07/2013, at 11:09 AM, Donn Cave wrote:
let x = t + 1 in
let y = x in
let x = y + 1 in x
Still no cigar.
nhc98 v1.16
Program:
main = print $ (let t = 0 in let x = t + 1 in let y = x in let x = y + 1 in x)
Output:
2
___