如何轻松查看函数的源代码(例如,从Statistics.jl包中的`quantile`函数)?

7

有没有一种简单的方法可以查看函数(例如来自Statistics.jl包的quantile函数)所做的确切计算?这里的目标仅是了解该特定函数所执行的计算,而不是编辑整个包。

非常感谢。


您还可以使用Juno调试器,通过点击跳转到任何调用的函数的定义。 - Antonello
我知道这是一个老问题,但尝试使用@less宏。 - mrbrich
3个回答

5

有一个名为Base.functionloc的函数,可以帮助你找到方法定义的文件和行号;但是你需要指定特定类型的方法作为元组参数:

julia> functionloc(cos, (Float64,))
("/usr/local/julia-1.0.0/bin/../share/julia/base/special/trig.jl", 100)

julia> functionloc(cos)
ERROR: function has multiple methods; please specify a type signature
...

5
还有一个名为@functionloc的宏,在许多情况下使用起来可能更容易,因为您可以直接使用函数调用语法:@functionloc cos(3.14)。无论您在代码中有什么函数调用,都可以在它之前插入@functionloc - Sundar R

4
你可以尝试使用@less宏。

计算函数或宏调用的参数,确定其类型,并在结果表达式上调用less函数。


3
或者使用 @edit 宏,它会在你最喜欢的编辑器中打开源代码(由 EDITOR 环境变量设置)。我更喜欢这个选项,因为编辑器(在我的情况下是 Vim)通常更易于导航和具有更多功能。 - Sundar R

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接