问题标签 [seq]

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 回答
17675 浏览

scala - 将 Seq 转换为 ArrayBuffer

有什么简洁的方法可以在 Scala 中将aSeq转换为?ArrayBuffer

0 投票
4 回答
596 浏览

scala - Clojure seq 作为 Scala Option[T] 的替代品

Scala 提供了类的层次结构Option[T],我发现这对于包装可以返回的 Java 方法调用很有用,除此之外:Some[T] extends Option[T]None extends Option[Nothing]null

result根据 Java 方法返回的是对象还是null. Option具有 , 等方法mapfilter您可以像在序列上一样使用这些方法,并且如果原始序列是,或者如果原始序列是 ,则返回一个新序列 ( Some) 。Some[T]NoneNone

Clojure 函数的行为似乎seq相似:(seq x)如果 x 不为 null 或 x 为 null,则将是一个项目的序列nil。然后可以将该值传递给(map ...),(filter ...)等,就像 ScalaOption方法一样。

我错过了什么吗?这种模式有意义吗?这是“尤里卡”吗?对有经验的 Clojure 程序员来说显而易见的时刻?

0 投票
1 回答
82192 浏览

list - 将项目添加到不可变 Seq

比如说,我有一个字符串序列作为输入,我想获得一个新的不可变Seq对象,它由 input 和 item 的元素组成"c"。以下是我发现有效的两种方法:

  1. assert(Seq("a", "b", "c") == Seq("a", "b") ++ Seq("c"))- 这个问题是,似乎Seq("c")仅仅为了操作而实例化一个临时序列()是多余的,并且会导致开销
  2. assert(Seq("a", "b", "c") == List("a", "b") ::: "c" :: Nil)- 这将输入集合的类型限制为 a List,因此Seq("a", "b") ::: "c" :: Nil不起作用。此外,实例化 a 似乎也Nil可能导致开销

我的问题是:

  1. 还有其他方法可以执行此操作吗?
  2. 哪一个更好?
  3. Seq("a", "b") ::: Nil不被允许不是 Scala 开发人员的缺陷吗?
0 投票
2 回答
612 浏览

f# - F#:Seq.forall 怪异?

给定let ra = ResizeArray<int> ()

如果我这样做,ra.Count返回5.

如果我这样做,ra.Count返回0.

那么,除非 lambda 函数的每次迭代都计算为 true,否则函数中的任何代码都不会被执行,还是什么?

这里发生了什么?

0 投票
3 回答
2481 浏览

bash - Bash 脚本循环内存不足?

在 bash 中,我需要运行一个从 i=1 循环到 i=99999999 的脚本,但它总是内存不足。有什么解决方法吗?还是 i 有最大值?

0 投票
4 回答
3774 浏览

java - 如何将类 Java 迭代器对象转换为 clojure 序列

我正在使用 Sesame 库在内存三重存储上运行 SPARQL 查询。

我正在使用 Clojure 来实现这一点。

查询结果是一个自定义的类似迭代器的 [1] 对象,因此 clojure seq不能直接使用它。

将自定义 java Iterator 类对象转换为 clojure 序列的最优雅方法是什么?

我想到的最明显和最愚蠢的想法是循环它并建立一个clojure向量,但我相信这个问题有更优雅的方法。

[1] http://www.openrdf.org/doc/sesame2/api/info/aduna/iteration/Iteration.html

0 投票
5 回答
916 浏览

haskell - Haskell `seq` 运算符的时间成本

这个常见问题解答

seq 运算符是

x seqy 将评估 x,足以检查它是否不是底部,然后丢弃结果并评估 y。这可能看起来没有用,但这意味着保证在考虑 y 之前对 x 进行评估。

这对 Haskell 来说非常好,但这是否意味着在

评估费用x将支付两次(“丢弃结果”)?

0 投票
6 回答
4960 浏览

linux - 如何在 zsh 中对数字变量进行零填充(也许还有 bash?)

在 zsh 中,当我必须使用 zsh 创建一堆文件时,我通常会执行以下操作:

这很好用,它给了我带有名字的文件foo-1.txt...... 但是,这些文件不能很好地排序,所以我想对变量进行零填充,从而产生..的名称。foo-1000.txt
$xfoo-0001.txtfoo-1000.txt

如何在 zsh 中做到这一点?(和奖金问题,如何在 bash 中做到这一点?)

0 投票
2 回答
1081 浏览

linq - F# 相当于 LINQ Single

好的,所以对于大多数 LINQ 操作来说,都有一个 F# 等价物。(一般在 Seq 模块中,因为 Seq= IEnumerable)

我找不到 的等价物IEmumerable.Single,我更喜欢SingleFirst它是 Seq.find),因为它更具防御性 - 它对我来说断言状态是我所期望的。

所以我看到了几个解决方案(除了使用 Seq.find 之外)。(这些可以写成扩展方法)

我只调用这个函数的类型签名是

only2是首选,但它不会编译(有任何线索吗?)。

0 投票
2 回答
165 浏览

haskell - 部分应用函数的`seq`

可以说我有以下内容:

现在让我们说f实际上是:

将:

实际评估f1 10,所以稍后运行时

它实际上只是一个简单的添加?

如果没有,有没有办法“评估”部分应用功能的一部分?

我正在寻找一种通用的解决方案,它不依赖于知道如何f工作g