2008/5/12 Lauri Oksanen <[EMAIL PROTECTED]>:
> 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
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to