2008/5/12 Lauri Oksanen <lassoken@xxxxxxxxx>:
> 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) \*
> 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)
Haskell-Cafe mailing list