如何解决如何在 repl 中跟踪递归 PureScript 函数的值?
有了这个 Main.purs
(不包括进口):
main :: Effect Unit
main = pure foo
foo :: Unit
foo = trace "foo" (\_ -> unit)
这对 pulp repl
和 pulp run
都按预期工作:
> import Main
> foo
'foo'
unit
> :q
See ya!
$ pulp run
* Building project in ...
* Build successful.
'foo'
$
但是使用这个 Main.purs
我得到了不同的结果 pulp repl
和 pulp run
:
main :: Effect Unit
main = pure $ bar unit
bar :: Unit -> Unit
bar _ = trace "bar" (\_ -> bar unit)
pulp repl
:
> import Main
> bar unit
console.js:168
if (isstackOverflowError(e))
^
pulp run
:
$ pulp run
* Building project in ...
* Build successful.
'bar'
'bar'
... omitted ...
'bar'
'bar'
'bar'
console.js:168
if (isstackOverflowError(e))
^
我还发现了这种可能相关也可能不相关的奇怪行为:
Main.purs
:
main :: Effect Unit
main = pure unit
-- foo is dead code
foo :: Unit
foo = trace "foo" (\_ -> unit)
外壳:
$ pulp run
* Building project in ...
* Build successful.
'foo'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。