小编Ada*_*ral的帖子

使用 where 子句和保护模式匹配时变量不在范围内

假设我有这段代码:

data Command = Forward Integer
             | Backwards Integer


doSomething givenCommand
 | Forward value <- givenCommand = undefined
 where calculatedValue = sqrt value
Run Code Online (Sandbox Code Playgroud)

假设使用 的未定义行将calculatedValue非常长并且calculatedValue计算时间也更长,因此为了使代码更具可读性,我想使用 where 子句。

问题是value在保护模式匹配中指定的变量不在 where 子句的范围内。
有没有办法解决这个问题,这不会强迫我在警戒线上执行计算?

谢谢。

haskell scope

2
推荐指数
1
解决办法
71
查看次数

标签 统计

haskell ×1

scope ×1