gpt4 book ai didi

在 Scala 中调试功能代码

转载 作者:行者123 更新时间:2023-12-02 21:47:58 25 4
gpt4 key购买 nike

调试函数式代码肯定比调试命令式代码更棘手。查看讨论here , herehere 。 “函数式”调试应该支持检查函数/闭包/monad 的返回值。是否有任何调试器/IDE 具有(计划具有)检查中间返回值的能力?

例如,要在 Scala 中调试这一行,我应该能够单步执行 4 个函数调用,并在返回 r 之前检查每一步的返回值

val r=(ls filter (_>1) sort (_<_) zipWithIndex) filter {v=>(v._2)%2==0} map{_._1}

最佳答案

我认为每个人的建议是将其分解为更易于管理的 block 是最好的方法。调试较小表达式的一个技巧是窃取 Ruby 的 tap 函数,如 here 中所述。 。 “tap”允许您将表达式粘贴在链的中间,如下所示,并且可能打印出一些调试值,如下所示:

val ls = List(1,2,3).map(_ * 2)
.tap(soFar => println("So far: " + soFar))
.map(_ * 2)
println(ls)

这将打印出:

So far: List(2, 4, 6)
List(4, 8, 12)

它偶尔会帮助我。

关于在 Scala 中调试功能代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com