Tom,

Why does "b" evaluate before "a" in your example? I would have thought left-hand and then right-hand if needed. I'm on my phone but I'd like to try the same example with booleans and `&&` instead of `+`.

Erik


On Sat, Dec 22, 2018, 11:40 PM Tom Ellis <tom-lists-haskell-cafe-2017@jaguarpaw.co.uk wrote:
On Sat, Dec 22, 2018 at 09:52:18AM +0100, Damien Mattei wrote:
> i have inserted trace statement that output variable
> ... i have strange behavior of output:

Let's take a simpler example.  Do you understand why the trace statments
from this small program appear in the order that they do?  (And for what
it's worth I really think you'll be better off writing programs using do
notation).


% cat test.hs
import Debug.Trace

result =
  let a = trace "evaluating a" 2
      b = trace "evaluating b" 10
      c = trace "evaluating c" (a + b)
  in c
~% ghci -e result test.hs
evaluating c
evaluating b
evaluating a
12
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.