问题标签 [zipper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
171 浏览

xml - 使用 clojure.data.zip 选择嵌套标签同名的嵌套 xml 元素

我有一些我正在使用的 XML clojure.data.zip.xml。该 XML 具有与嵌套元素同名的元素:

xml->但是,使用clojure.data.zip.xml 中的函数访问内部元素似乎超出了我的能力范围。但是,如果嵌套元素与父元素不使用相同的名称,则一切都按预期工作:

我怀疑这可能是一个未解决的案例clojure.data.zip.xml,但如果我只是误解了如何使用该库,我希望有人能告诉我正确的用法。

0 投票
1 回答
2986 浏览

php - laravel 错误:您的 PHP 版本未使用 zip 支持编译

我正在使用 zipper 在 laravel 5.3 中创建 zip 文件,得到的错误为,

错误:您的 PHP 版本未使用 zip 支持编译

PHP版本:5.6

0 投票
1 回答
99 浏览

zipper - 如何反向执行 zip 迭代器?- 礼拜堂

如何以相反的顺序执行 zip 迭代器?我需要移动子数组的元素。

我的代码如下:

我需要以相反的顺序执行此操作(即 b-->a & d-->c )以避免在重叠区域的情况下覆盖。(a..b 总是在 c..d 之前)。

0 投票
2 回答
605 浏览

xml - 如何在 clojure.data.zip 中使用 xml-> 获取嵌套节点?

我发现 xml-> 的用法非常令人困惑。我已经阅读了文档和示例,但不知道如何获取 xml 文档的嵌套节点。

假设以下 xml 在拉链中(来自 xml-zip):

我正在尝试使用 class='two' 返回 div。

我期待这个工作:

或这个:

有点像 CSS 选择器。

但它只返回第一级,并且不会向下搜索树。

我能让它工作的唯一方法是:

那是我应该做的吗?

我开始使用 xml-> 的全部原因是为了方便并避免上下左右导航拉链。如果 xml-> 无法获得嵌套节点,那么我看不到 clojure.zip 上的值。

谢谢。

0 投票
1 回答
524 浏览

php - 如何在 PHP 中使用受密码保护的 zip 文件创建目录的备份?

我想在 PHP 中创建我的项目目录的每周备份。我需要帮助才能在 php.ini 中创建受密码保护的 zip 文件。我使用以下功能,但这不会创建整个文件夹备份,也无助于密码保护。

0 投票
1 回答
1018 浏览

php - Laravel Zipper 压缩后删除文件

我正在使用Zipper包从 API 获取的 PDF 中制作 zip 文件。压缩工作正常,但我想删除压缩的 PDF 文件。

我正在使用此代码,但是,我认为它cleanDirectory()会在压缩完成之前被调用,并且我没有看到任何 zip 生成。如果我注释掉最后一行,我会得到 zip 文件和 PDF 文件/user_downloads

我怎样才能等待拉链完成拉链?

0 投票
1 回答
91 浏览

clojure - 空孩子和 Clojure 拉链

为什么最后一个表达式会重新运行

{:a :foo, :args [{:id :XX}], :id :XX}

代替:

{:a :foo, :args [], :id :XX}


看起来问题与使用 zip/next 遍历显示有 2 个节点的事实有关:

这是为什么?有一个带有空子节点的节点,所以应该只有一个节点,对吗?

0 投票
0 回答
583 浏览

graph - 表示图的不可变函数数据结构

我(几乎)完全理解树的 Zipper 数据结构。然而,在一些出版物中,我看到暗示也可以使用 Zipper 的想法为任意图(也可能有循环)创建不可变的函数数据结构。

有什么办法呢?

一旦我们有了循环,就意味着可以通过多条路径到达任何节点。因此,如果我专注于一个节点,对其进行一些更改,然后将焦点移开,我可能稍后会通过不同的路径回到同一个节点,这意味着它将是该节点的“旧”版本,在进行更改之前。

我想出的唯一解决方案是将任何节点的更改列表包含到上下文中。每次在焦点变更到节点X之前,都要检查X是否是变更列表的成员,如果是,则将其作为焦点节点。

如果我们还跟踪从更改列表中复制 N 个节点 X 的次数,我们可以从更改列表中删除 X,只要 N = 边数,向内移动到 X。

有没有更好的方法呢?

0 投票
2 回答
152 浏览

xml - 无法使用 clojure.data.zip.xml 访问深度嵌套的 XML

我试图获得内部的价值:group,但它似乎被外部的价值所吸引。似乎忽略了第二个:group

我试图解析的实际 XML 有一个重复的嵌套<TheirTag><TheirTag>Foo</TheirTag></TheirTag>模式,我需要单独访问每个 Foo。XML 来自第三方,所以我不能只是重组 XML 来避免这种情况。

0 投票
1 回答
86 浏览

functional-programming - 在 Idris 中将变量类型化为具体类型的方法(改进?是吗?)?对于依赖类型的 HOAS 拉链

我有以下内容:

这不会对以下And情况进行类型检查,up因为 Idris 无法匹配我的问题是Zipper f gZipper Bool g我怎样才能让它工作,以便当我的表达式有具体类型的子级时我可以在树中重建一个级别?我认为我需要以某种方式改进类型,但我真的看不出制作新的依赖类型(或 GADT)将如何帮助解决这个问题(而且我不知道任何其他改进类型的方法!)

我已经查看了意见和证明,但是在尽力了几个星期之后,我似乎无法找到一种方法来编写问题来说出以下内容The focus of the zipper has the same type as the right child of the context's parent expression, if the context was constructed with R. The same is true for the focus and the context's left child, if the context was constructed with L.

我尝试增加类型参数,以便每个表达式都包含其子项的类型,Expr a l m r但我最终会遇到相同的错误,即使我可以编写一个新版本来R : Expr r t u v -> Expr a l m r -> Expr m h i j -> Expr r x y z -> Context -> Context捕获这种关系。最后,我需要一种方法来告诉 Idris 某些参数a确实Bool处于某种模式匹配之下!

我非常卡住,所以任何建议都会非常感激!

亲切的问候,多诺万