
2008/5/12 Lauri Oksanen
Hi,
I'm writing my first real Haskell program and I came up with the following code snippet.
--- let x' = x \+ dist \* dir nx' = normal geometry wi = (-1) \* dir in do (p, wo) <- brdfCosSampling reflector nx' wi let color' = p \** color q = min 1 (scalarContribution p) in do sampler <- biasedCoinSampler q (radianceSampler surfaces x' wo (q \* color')) (terminalRadianceSampler surfaces x' nx' ((1-q) \* color')) sampler ---
This works just fine but I don't like the way I had to indent the code because of alternating lets and dos. I would like to indent the code more like an imperative code i.e. like this
You can use let in a do-block, just don't use "in": do x <- something let y = ... x ... return (x + y) -- Denis