将嵌套的“where”应用于另外两个绑定的位置

时间:2014-05-25 21:39:36

标签: haskell

我想做这样的事情:

foo x = a + b
    where
        a = bar z
        b = baz z
            where
                z = qux x

但那不是有效的Haskell; z = qux x适用于b = baz z,但不适用于a = bar z

我该怎么做?

1 个答案:

答案 0 :(得分:5)

where - 绑定的右侧可以引用同一块中定义的变量:

foo x = a + b
    where
        a = bar z
        b = baz z
        z = qux x

工作正常。