Julia:显示函数体(以查找丢失的代码)

2024-04-13

在 R 语言中,我可以声明一个函数并查看函数体,如下所示:

> megafoobar = function(x){ return(x + 10000 )}
> body(megafoobar)
{
    return(x + 10000)
}

类似的事情在 Julia 中也可能发生吗?我编写了一个非常有用的函数,它仍然在内存中/可调用,但我忘记了我是如何编写它的。我希望 Julia 中存在这样的方法,这样我就可以知道我是如何编写它的。


对于包中定义的函数,您可以使用less or @less。 前者采用函数名称(并返回第一个定义, 不一定是您想要的),后者是函数调用。

less(less)         # First definition of less, 
                   # with signature (String,Integer)
@less less(less)   # Definition of less(f::Callable)

但这不适用于您在 REPL 中定义的函数。 对于那些,你可以使用code_typed,但它只返回 AST(抽象 代码的语法树),可读性较差。 您还需要提供参数的类型, 因为可以有多个同名的函数: 你可以用methods.

f(x::Number) = x + 1
f(x::AbstractArray) = length(x)

methods(f)
# 2 methods for generic function "f":
# f(x::Number) at none:1
# f(x::AbstractArray{T,N}) at none:1

code_typed(f,(Number,))  # Give the argument types as a tuple
# 1-element Array{Any,1}:
#  :($(Expr(:lambda, {:x}, {{},{{:x,Number,0}},{}}, :(begin  # none, line 1:
#         return x::Number + 1
#     end))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia:显示函数体(以查找丢失的代码) 的相关文章

  • 修改 SIR 模型以包含随机性

    我正在尝试通过将真实流行曲线与随机 SIR 模型的模拟进行比较来建立一种估计传染病参数的方法 为了构建随机 SIR 模型 我使用 deSolve 包 而不是使用固定参数值 我想从以原始参数值为中心的泊松分布中绘制每个时间点方程中使用的参数值
  • 如何在 R 中连接数字列?

    我在 R 的数据框中有三列 x y 和 z 坐标 我想将其连接成一个 xyz 值 如下所示 我尝试过使用 collapse 和 sep 粘贴 但遇到了麻烦 我认为这与文本与数字变量有关 I have x y z 1 2 3 2 3 2 3
  • 如何在Shiny中实时刷新sliderInput()(不仅仅是滑动结束时)?

    抱歉 不知道问题说得够清楚吗 在Shiny中 滑块每次滑动时 只会计算并更新滑动结束时的值 如果我将它的值链接到图表上 滑动时看起来不太平滑 图表只会在释放鼠标时或几秒钟后发生变化 而不是随着滑动而不断变化 使用滑动条改变y 图表中红点的位
  • 带有 dplyr::do 的匿名函数 - 使用 rle 的结果来过滤数据

    我有按主题 id 分组的时间序列数据 这些数据保留在某个 站点 上 并且在每个 时间 步骤中都有某个 阶段 有时受试者从一个站点切换到另一个站点 并且可能会再次返回 如果个人更换站点来回 例如 从站点 a 到站点 b 然后返回站点 a an
  • r-base 和 r-推荐包之间的区别

    谁能告诉我基本包和推荐包之间有什么区别 如果有提到基本包和推荐包的链接 请提供链接 差异实际上来自 R Core 和 R 代码的组织方式 例如在上游 SVN 存储库中 In src library 您拥有所有 基本 包 base 编译器 数
  • R中特定小时和月份的数据框中的平均值

    我一直在网上搜索 但还没有找到解决这个可能很简单的问题的方法 这是使用库 xts 的半小时数据 library xts data xts lt as xts 1 nrow data as POSIXct 2007 08 24 17 30 0
  • 在Shiny的conditionalPanel中添加多个条件

    我想知道是否可以添加多个条件conditionalPanel闪亮的 这是一个例子 conditionalPanel condition input SELECT 1 Slider sliderInput D FLAG Parameter X
  • 使用 cut 为时间变量创建 24 个类别

    在这里 我导入数据 对其进行一些操作 这可能不是问题 修复所在 前两行设置了我的剪切参数 lab var num lt 0 24 times var lt c 0 100 200 300 400 500 600 700 800 900 10
  • 函数不会在所有代码路径上返回值。使用结果时,运行时可能会发生空引用异常

    我收到此错误 函数 getkey 不会在所有代码路径上返回值 当结果为空引用异常时 可能会在运行时发生 用过的 到以下代码 Public Function getkey ByVal id As String Dim cmd As SqlCo
  • R: Knit 给出 SQL-chunk 错误

    我想编织 R markdown 的输出 其中包括几个 SQL 块 但是 如果我开始编织 就会收到错误消息 Line 65 Error in eval expr envir enclos object pp dataset not found
  • 如何在 R 中创建 for 循环来进行这种特殊的计算

    我无法弄清楚这种 显然 简单的操作 给定这两个不同的数据框df A nrow 10 ncol 3 和df B n行 3 n列 3 df A df B col1 col2 col3 col1 col2 col3 1 2 4 1 4 5 3 5
  • 使用 KnitR 在 R 中以编程方式创建 Markdown 表

    我刚刚开始了解 KnitR 以及使用 Markdown 生成 R 文档和报告 这对于我与工作有关的许多日常报告来说似乎是完美的 然而 我没有看到的一件事是使用 Markdown 格式打印数据框和表格的简单方法 有点像xtable 但使用 M
  • 使用ggmap在地图上绘制等高线

    我有洛杉矶港地区的颗粒物浓度差异 之后 之前 我正在尝试使用 ggmap 在地图上绘制浓度等值线 但结果看起来很不同 我使用的代码如下所示 数据位于代码下方 Code 安装 packages ggmap library ggmap PM r
  • 在 R 中从一条线偏移绘制一条平行线

    我有代表沿着一些街道行驶的线串 但我实际上想代表骑自行车者的旅程 它偏离线路 即他们在路边附近行驶 我正在努力思考如何去做 我制作了一段可重现的 R 代码来进行说明 Let s say I have a route along some s
  • R:计算数据框的边距或行和列总和

    我有一个如下所示的数据框 Flag1 Flag2 Type1 Type2 Type3 1 A FIRST 2 0 0 2 A SECOND 1 9 0 3 A THIRD 3 7 0 4 A FOURTH 9 18 0 5 A FIFTH
  • R:将多列转换为单列[重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的数据框 ID week1 t week1 a week2 t week2 a 1 12 22 17 4 1 15 32 18 5 1 24 12 29 6 2 45 11
  • C# vb:S​​ystem.Func 占用多少内存?

    System Func 究竟拥有多少内存 System Func 是 1 行还是 1000 行有什么区别吗 Func是委托类型 一个实例在x86抖动中占用32字节存储 对象头 8 个字节 4 个字节用于 Delegate methodBas
  • 有没有办法“source()”并在错误后继续?

    我有一个大型 R 脚本 其中包含 142 个小部分 如果某一部分因错误而失败 我希望脚本继续而不是停止 这些部分不一定相互依赖 但有些部分确实相互依赖 如果中间的一个失败了也没关系 我不想在这个脚本中加入try 来电 而且我不想将文件分成许
  • R:在组上应用函数

    我希望将函数应用于数据框 然后将该函数的结果存储在数据框中的新列中 这是我的数据框 tradeData 的示例 Login AL Diff a 1 0 a 1 0 a 1 0 a 0 1 a 0 0 a 0 0 a 0 0 a 1 1 a
  • 显示函数的完全限定名称

    include

随机推荐