Functional programming 在PureScript中找不到'do'块中的变量
这不起作用:Functional programming 在PureScript中找不到'do'块中的变量,functional-programming,purescript,Functional Programming,Purescript,这不起作用: itAsync "subscribeEventedOn should receive any attached data" $ \done -> do w <- getWindow subscribeEventedOn "foo" (\event -> do fprint event expect (unwrapDetail event) `toDeepEqual` d' itIs done ) w emitOn
itAsync "subscribeEventedOn should receive any attached data" $ \done -> do
w <- getWindow
subscribeEventedOn "foo" (\event -> do
fprint event
expect (unwrapDetail event) `toDeepEqual` d'
itIs done
) w
emitOn sampleEvent w
expect true `toEqual` true
itAsync“subscribeEventedOn应接收任何附加数据”$\done->do
w多
fprint事件
expect(unwrapDetail事件)`toDeepEqual`d'
完成了
)w
emitOn采样事件w
期待真实的‘toEqual’真实
未知值“w”
但这确实有效:
w <- getWindow
itAsync "subscribeEventedOn should receive any attached data" $ \done -> do
subscribeEventedOn "foo" (\event -> do
fprint event
expect (unwrapDetail event) `toDeepEqual` d'
itIs done
) w
emitOn sampleEvent w
expect true `toEqual` true
w do
订阅“foo”(\event->do)
fprint事件
expect(unwrapDetail事件)`toDeepEqual`d'
完成了
)w
emitOn采样事件w
期待真实的‘toEqual’真实
为什么??这对我来说没有意义。(顺便说一句,我在单元测试中嵌套了
do
块)我能够通过猜测示例代码中的名称类型来重现这一点,看起来这是由PureScript lexer的特性造成的。您可以通过将结束参数向上移动到上面的行来修复它:
itAsync "subscribeEventedOn should receive any attached data" $ \done -> do
w <- getWindow
subscribeEventedOn "foo" (\event -> do
fprint event
expect (unwrapDetail event) `toDeepEqual` d'
itIs done) w
emitOn sampleEvent w
expect true `toEqual` true
itAsync“subscribeEventedOn应接收任何附加数据”$\done->do
w多
fprint事件
expect(unwrapDetail事件)`toDeepEqual`d'
完成后)w
emitOn采样事件w
期待真实的‘toEqual’真实
Trippy。你想让我提交一个问题吗?我怀疑如果我们切换到purescript中purescript实现的lexer的更新版本,这种问题就会得到解决。