问题标签 [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.
scala - 将 Seq 转换为 ArrayBuffer
有什么简洁的方法可以在 Scala 中将aSeq
转换为?ArrayBuffer
scala - Clojure seq 作为 Scala Option[T] 的替代品
Scala 提供了类的层次结构Option[T]
,我发现这对于包装可以返回的 Java 方法调用很有用,除此之外:Some[T] extends Option[T]
None extends Option[Nothing]
null
result
根据 Java 方法返回的是对象还是null
. Option
具有 , 等方法map
,filter
您可以像在序列上一样使用这些方法,并且如果原始序列是,或者如果原始序列是 ,则返回一个新序列 ( Some
) 。Some[T]
None
None
Clojure 函数的行为似乎seq
相似:(seq x)
如果 x 不为 null 或 x 为 null,则将是一个项目的序列nil
。然后可以将该值传递给(map ...)
,(filter ...)
等,就像 ScalaOption
方法一样。
我错过了什么吗?这种模式有意义吗?这是“尤里卡”吗?对有经验的 Clojure 程序员来说显而易见的时刻?
list - 将项目添加到不可变 Seq
比如说,我有一个字符串序列作为输入,我想获得一个新的不可变Seq
对象,它由 input 和 item 的元素组成"c"
。以下是我发现有效的两种方法:
assert(Seq("a", "b", "c") == Seq("a", "b") ++ Seq("c"))
- 这个问题是,似乎Seq("c")
仅仅为了操作而实例化一个临时序列()是多余的,并且会导致开销assert(Seq("a", "b", "c") == List("a", "b") ::: "c" :: Nil)
- 这将输入集合的类型限制为 aList
,因此Seq("a", "b") ::: "c" :: Nil
不起作用。此外,实例化 a 似乎也Nil
可能导致开销
我的问题是:
- 还有其他方法可以执行此操作吗?
- 哪一个更好?
Seq("a", "b") ::: Nil
不被允许不是 Scala 开发人员的缺陷吗?
f# - F#:Seq.forall 怪异?
给定let ra = ResizeArray<int> ()
:
如果我这样做,ra.Count
返回5
.
如果我这样做,ra.Count
返回0
.
那么,除非 lambda 函数的每次迭代都计算为 true,否则函数中的任何代码都不会被执行,还是什么?
这里发生了什么?
bash - Bash 脚本循环内存不足?
在 bash 中,我需要运行一个从 i=1 循环到 i=99999999 的脚本,但它总是内存不足。有什么解决方法吗?还是 i 有最大值?
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
haskell - Haskell `seq` 运算符的时间成本
seq 运算符是
x
seq
y 将评估 x,足以检查它是否不是底部,然后丢弃结果并评估 y。这可能看起来没有用,但这意味着保证在考虑 y 之前对 x 进行评估。
这对 Haskell 来说非常好,但这是否意味着在
评估费用x
将支付两次(“丢弃结果”)?
linux - 如何在 zsh 中对数字变量进行零填充(也许还有 bash?)
在 zsh 中,当我必须使用 zsh 创建一堆文件时,我通常会执行以下操作:
这很好用,它给了我带有名字的文件foo-1.txt
......
但是,这些文件不能很好地排序,所以我想对变量进行零填充,从而产生..的名称。foo-1000.txt
$x
foo-0001.txt
foo-1000.txt
如何在 zsh 中做到这一点?(和奖金问题,如何在 bash 中做到这一点?)
linq - F# 相当于 LINQ Single
好的,所以对于大多数 LINQ 操作来说,都有一个 F# 等价物。(一般在 Seq 模块中,因为 Seq= IEnumerable)
我找不到 的等价物IEmumerable.Single
,我更喜欢Single
(First
它是 Seq.find),因为它更具防御性 - 它对我来说断言状态是我所期望的。
所以我看到了几个解决方案(除了使用 Seq.find 之外)。(这些可以写成扩展方法)
我只调用这个函数的类型签名是
only2
是首选,但它不会编译(有任何线索吗?)。
haskell - 部分应用函数的`seq`
可以说我有以下内容:
现在让我们说f
实际上是:
将:
实际评估f1 10
,所以稍后运行时
它实际上只是一个简单的添加?
如果没有,有没有办法“评估”部分应用功能的一部分?
我正在寻找一种通用的解决方案,它不依赖于知道如何f
工作g
。