如何在 Julia 中实现迭代器?

2024-06-28

我正在尝试在 Julia 中实现迭代器,但是当 for 循环尝试调用时出现异常start已经。

这是我得到的(我运行了 include(...),然后using RDF):

julia> methods(start)
# 1 method for generic function "start":
start(graph::Graph) at /Users/jbaran/src/RDF.jl/src/RDF.jl:214

julia> for x in g
       println(x)
       end
ERROR: `start` has no method matching start(::Graph)
 in anonymous at no file

函数定义在RDF模块目前看起来像这样:

function start(graph::Graph)
    return GraphIterator(collect(keys(graph.statements)), nothing, nothing, nothing, [], [])
end

知道我做错了什么吗?


在 Julia 1.+ 中,您应该实现:

  1. Base.iterate(::YourType)对于起始迭代,
  2. Base.iterate(::YourType, state)进行后续迭代,同时获得state从前面的步骤。

两种方法都应该返回(result, state)元组,除了应该返回的最后一次迭代nothing.

在实践中,这意味着迭代x::YourType with

for i in x
    # some code
end

是写作的简写

it = iterate(x)
while it !== nothing
    i, state = it
    # some code
    it = iterate(x, state)
end

See the manual https://docs.julialang.org/en/v1/manual/interfaces/了解详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Julia 中实现迭代器? 的相关文章

  • Julia - 迭代字典中的键组合

    有没有一种巧妙的方法来迭代字典中的键组合 我的字典有这样的值 1 gt 1 2 2 3 gt 15 3 gt 6 7 8 4 9 11 gt 3 我需要做的是获取所有长度的键组合1 n where n可能是FX 3 就像上面的例子一样 我想
  • Julia:数组是否包含特定的子数组

    在 julia 中 我们可以检查数组是否包含值 如下所示 gt 6 in 4 6 5 true 然而 当尝试按特定顺序检查子数组时 这会返回 false gt 4 6 in 4 6 5 false 验证数组中是否存在特定子数组的正确语法是什
  • 在 Julia 中有效求解特定线性系统

    我广泛使用朱莉娅的线性方程求解器res X b 由于参数变化 我必须在程序中使用它数百万次 这工作正常 因为我使用的是小尺寸 最多30 现在我想分析更大的系统 最多1000 线性求解器不再有效 我认为可以有一个解决办法 然而我必须说 有时我
  • 如何更改julia(1.8.5)默认安装包的位置?

    如何更改julia 1 8 5 默认安装包的位置 我不想把包安装到c盘 因为pwd 和homedir 都默认到c盘 如何修改 我想每次都像安装python包一样打开Julia 有固定的安装路径 例如user Base User site 我
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 如何制作任意级别的嵌套for循环

    我可以像这样做一个两级嵌套循环 for i1 in 1 n for i2 in 1 n do something with i1 i2 如何将其扩展到任意级别的嵌套循环 例如 我可以在 Python 中执行此操作以循环 n m 的笛卡尔积
  • 获取参数类型的参数

    假设我定义了一个这样的类型 type Point Tx Ty end 然后我创建一个这种类型的变量 例如 a Point Int64 something 现在 我只知道我可以获得以下类型a by typeof a 那是 Point Int6
  • 并行模拟写入同一文件

    我的目标是在集群上并行运行 10 000 个左右的 Julia 编码模拟 每个模拟独立于所有其他模拟 每个模拟都有一个要输出的数字 以及有关哪个模拟产生该数字的 3 列信息 因此 强制每个模拟打印在单独的文件上对我来说听起来有点愚蠢 我可以
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在 Julia 中引用结构本身

    我有这个代码 struct MyStruct text String function MyStruct text String text text do other things end end 当我写这篇文章时 我意识到朱莉娅没有认识到
  • 终止 Julia 数组理解中的 For 循环

    我在 Julia 中有以下代码行 X i i 2 for i in 1 100 if i 2 5 0 基本上 它返回一个元组列表 i i 2 from i 1 to 100如果剩余的i 2 and 5为零 我想做的是 在数组理解中 跳出 f
  • 如何终止 Julia 中的任务/协程?

    using HttpServer http HttpHandler do request Request response Response show request Response Hello there end http events
  • Julia 中基准和时间宏的区别

    我最近发现两个宏之间存在巨大差异 benchmark 和 time 在内存分配信息和时间方面 例如 benchmark quadgk x gt x 0 1 BenchmarkTools Trial memory estimate 560 b
  • 如何在 Julia 中使用 set precision?

    我试图增加使用 set precision 函数的代码 但每次我使用示例时 无论多么简单 它总是给出相同的错误 当我做 x big 1 23456789 setprecision x 20 我收到以下错误 ERROR LoadError M
  • Julia 中使用微分方程的二阶 ODE

    我正在尝试使用 Julia 中的微分方程求解谐振子 IE using DifferentialEquations using Plots m 1 0 1 0 function mass system ddu du u p t a t 1 m
  • 如何在 Julia 中有效计算二次形式?

    我想计算一个二次形式 x Q y在朱莉娅 对于这种情况 计算此值的最有效方法是什么 没有假设 Q是对称的 x and y是相同的 x y Both Q是对称的并且x y 我知道朱莉娅有dot 但我想知道它是否比 BLAS 调用更快 现有的答
  • 如何向数组添加维度? (与“挤压”相反)

    我永远不记得如何做到这一点 怎么可以去 来自向量 大小 n1 到列矩阵 大小 n1 1 或来自矩阵 大小 n1 n2 到数组 T 3 大小 n1 n2 1 或来自数组 T 3 大小 n1 n2 n3 到数组 T 4 大小 n1 n2 n3
  • 如何更改朱莉娅图中刻度的精度

    我是第一次在 julia 中绘图并安装了 Juno IDE 我使用 Plots jl 进行绘图 每次绘图时 y 轴抽动都有很多小数 我尝试过多个后端 例如 GR Plotly PlotlyJS 但没有一个后端改变了我所看到的行为 这是我当前
  • 在 Julia 中将二进制转换为十进制

    我想在 Julia 中将二进制转换为十进制 看起来像parseint 已被弃用 以下方法是执行此操作的最佳方法吗 julia gt parse Int 111 2 7 你是从字符串开始吗 那么是的 就是这样 如果您只想以二进制形式编写常量
  • 古罗比报告了无界模型,尽管数学上是不可能的

    我正在使用 Julia 出色的 JuMP 包来求解线性程序 并使用 Gurobi 6 0 4 作为求解器 目标函数是决策变量的总和 明确定义为非负 并且问题要求将其最小化 出于某种原因 古罗比认为该模型是无限的 这是变量和目标的定义 def

随机推荐

  • 无法访问通过 jQuery ajax 发送的我的 Post 值

    EDIT 用 htaccess 删除 index php 会创建我刚刚发现的这个问题 现在我要着手解决它 EDIT 问题解决了 JavaScript 是错误的 url login 它需要一个尾部斜杠 ORIGINAL 在我的主页视图中 我创
  • Qt:如何制作二维插值颜色字段?

    我是 C 的初学者 尤其是与图形相关的 我想为我的图形视图制作一个动画背景 如下所示 梯度场气流 http www engineering leeds ac uk cfd research images untitled JPG 该图片表现
  • 在 Ruby 中生成正则表达式模式的字符串

    在Python语言中我发现rstr https bitbucket org leapfrogdevelopment rstr 可以生成一个字符串regex http en wikipedia org wiki Regular express
  • 如何解决转移/减少冲突?

    我正在使用 CUP 创建论文所需的解析器 我的语法中存在移位 归约冲突 我有这个生产规则 command IDENTIFIER IDENTIFIER LPAREN parlist RPAREN 我有这个警告 Warning Shift Re
  • 具有最大高度的 div 内的表格

    我想要一个可滚动的表格 为了实现这一点 我包装了一个 table into a div with a max height and overflow auto 除此之外 div has display inline block以确保 div
  • 在接收器上获取 Chromecast 发送器 URL

    Chromecast 接收者是否可以确定特定发送者的 URL 我可以获得发件人列表 const context cast framework CastReceiverContext getInstance context getSender
  • C++ win32 从资源加载字符串

    好吧 我最近决定将应用程序中的每个字符串放入 STRINGTABLE 中 这样我就可以轻松翻译成不同的语言 我知道如何使用 LoadString api 但这涉及我为要加载的每个字符串使用不同的变量 如果我的应用程序有 100 个字符串 那
  • 如何在颤动中设置容器的不透明度

    我想为包含十六进制颜色代码的容器设置不透明度 如何做呢 这是我当前的代码 final body Container width MediaQuery of context size width margin const EdgeInsets
  • 通过标记现有提交来触发 Jenkins 管道

    描述 我设置了 Jenkins 2 126 以便在推送新标签时构建管道 具体来说 我想将现有提交标记为master as release 3并让它触发构建 根据多个消息来源 我想要的是可能的 https mohamicorp atlassi
  • 在 java 中解析非常大的 XML 文档(以及更多)

    以下全部用Java编写 我必须构建一个应用程序 该应用程序将可能非常大的 XML 文档作为输入 该文档已加密 不是使用 XMLsec 而是使用我客户预先存在的加密算法 将分三个阶段进行处理 首先 将根据上述算法对流进行解密 其次 扩展类 由
  • PS3 上的 Mono 开发资源

    我一直在考虑冒险在我的 Playstation 3 上安装 Linux 由于 C 是我当前选择的语言 所以下一个合乎逻辑的步骤是安装 Mono 我做了一些研究发现http psubuntu com wiki InstallationInst
  • 合并两个 json 对象

    我有以下输入 2 个 json 文件 第一个是基本文件 第二个包含相同的属性但不同的值 我想合并这些对象 例如 a b asda c asdasd 第二个文件 a b d 结果应该是这样的 a b d c asdasd 用powershel
  • 正则表达式匹配句尾标记[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要匹配所有句末符号 例如 句点 等在给定的文本正文中 任何人都可以帮我解决正则表达式来做这样的事情吗 输入示例 This is t
  • 如何延迟从 ActiveMQ 在 Apache Camel 中消费消息

    我有一个要求 当客户端应用程序在 5 秒的时间范围内发送超过 1000 个请求时 我需要通过调整 排队 入站流量来进行限制 我遵循的解决方案是 我有一个camel throttle 将最大请求数设置为 1000 时间跨度设置为 5 秒 当超
  • C++:如何从 make_shared 部分推导模板参数

    为了规避对部分提供的显式模板参数的限制 https stackoverflow com questions 41833630 c17 class template partial deduction 我嵌入了要从中推导出类模板参数的结构 I
  • 反射的性能:JVM 中的高质量字节码

    Edit 2 是否有一个完全的程序object oriented实施能带来高性能吗 大部分的framework是用它的全部力量写的 然而 reflection也被大量用于实现它 例如AOP and dependency injection
  • Laravel - 在一个方法中返回多个值

    这是我目前陷入困境的地方 我正在执行多种方法 对同一个表进行不同的查询 public function totalOfA return a Stocks where user id this gt employee gt id gt whe
  • Javascript的removeChild()和appendChild() VS display=none和display=block|inline

    我正在开发一个 Web 应用程序 动态显示一些控件和描述 我不想使用 jQuery 或其他库 此时我使用以下方法使控件出现和消失 element setAttribute style display inline and element s
  • ASP.NET Identity 外部身份验证提供程序自定义图标

    使用 SimpleMembership 您可以向外部身份验证提供程序按钮添加一个图标 如下所示 简单会员制 Dictionary
  • 如何在 Julia 中实现迭代器?

    我正在尝试在 Julia 中实现迭代器 但是当 for 循环尝试调用时出现异常start已经 这是我得到的 我运行了 include 然后using RDF julia gt methods start 1 method for gener