问题标签 [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 投票
2 回答
521 浏览

list - 两元素列表方案

我需要编写一个函数来确定给定列表是否是一对元素。如果列表恰好包含两个元素,则程序将简单地响应 #t 或如果不包含则响应 #f,例如:

我对Scheme还是很陌生,所以任何帮助都将不胜感激!谢谢!

0 投票
1 回答
2008 浏览

list - 方案 Zip 函数

我需要在 Scheme 中编写一个充当拉链的函数 - 这意味着它需要两个列表并从两个列表中创建一个“拉链”,这样

此外,它将每个元素放在第 n 个位置并将它们配对在一起。

我对Scheme相当陌生,所以任何帮助将不胜感激!谢谢!

0 投票
1 回答
1098 浏览

clojure - 使用 Clojure 拉链查找树中节点的位置

我有一棵结构未知的树。首先,我想找到一个包含文本字符串“Something”的节点。然后,在确定字符串在树中的位置之后,我想更新一个相对于字符串 location的不同节点。数据是具有多个列表分支的深度嵌套映射。

用拉链可以吗?

我研究过这种编辑树的方法:http ://www.exampler.com/blog/2010/09/01/editing-trees-in-clojure-with-clojurezip/ 。问题是,我事先并不知道字符串的位置。

0 投票
1 回答
109 浏览

xml - 反 XML:在取消选择后,使用自定义选择器对 Zipper 进行的一些修改不会持续存在

为了测试在 XML 文档中转换 Text 元素的方法,我编写了两个非常简单的选择器,并在生成的 Zipper 上应用了 map/toUpperCase。结果应该是除了那些通过第一个选择器排除的文本元素之外的所有文本元素都转换为大写。但它仅适用于最下方的 Text 元素。这是代码:

因此,在倒数第二个命令中,将大写应用于所有目标文本元素,但在退出拉链后,四个元素中只有两个被转换。我已经尝试过,<hi/>而不是<hi>these</hi>然后those被大写。知道这里有什么问题吗?

我正在为 Scala 2.10.3 使用 arktekk.no fork。

0 投票
4 回答
3794 浏览

haskell - 镜片和拉链有什么区别?

这是在 Haskell 中使用拉链的示例:

这是在 Clojure 中使用拉链的示例:

这是在 Haskell 中使用 Lens 的示例:

这是在 Clojure 中使用镜头的示例。

现在看来,lens 和 zippers 都是遍历嵌套数据结构的函数式方法。

我的问题是:镜片和拉链有什么区别?是否适合特定用例?

0 投票
2 回答
217 浏览

haskell - Data.Tree.Zipper 中拉链数据类型中的冗余信息?

在 Data.Tree.Zipper 中,玫瑰树的拉链数据类型是

现在在我看来,_after 和 _before 中的信息是多余的,因为它也应该显示在 _parents 字段中。(节点的兄弟姐妹是其父节点的子节点。)

为什么是这样?不方便?

0 投票
1 回答
64 浏览

haskell - 关于 Zipper 上移方法的问题

我正在阅读 Haskell Wiki 中的Zipper 文章,但我无法理解up定义为的方法:

在模式up (t, L c r)中,t是有焦点的子树,c是当前焦点处有洞的上下文,向上移动时,为什么c不向上移动但仍然引用旧上下文?焦点不应该也上去吗?

0 投票
3 回答
1125 浏览

scala - 在scala中压缩不等长列表

我想要这样的东西:

def unequalZip[A, B](a: Iterable[A], b: Iterable[B]) = Iterable[(Option[A], Option[B])]

其中较短可迭代的项目使用Nones与较长可迭代的项目匹配

0 投票
1 回答
517 浏览

buffer - 长度不均匀的 Rx Zip 缓冲的 observables

我试图解决的问题用以下代码表示:

这是此测试的输出:

这是我想要的输出:

0 投票
1 回答
522 浏览

scala - 用于遍历列表或树的拉链与迭代器

假设我需要遍历列表或树来读取(但不修改)数据。我可以使用迭代器或ZipperZipper在这种情况下,除了不变性之外还有其他优势吗?