问题标签 [splat]
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.
haskell - Haskell 有像 Python 和 Ruby 这样的 splat 运算符吗?
在 Python 和 Ruby 中(我敢肯定,还有其他的)。您可以在枚举前面加上*
("splat") 以将其用作参数列表。例如,在 Python 中:
Haskell中有类似的东西吗?我认为由于它们的任意长度,它不适用于列表,但我觉得使用元组它应该可以工作。这是我想要的一个例子:
我正在寻找允许我执行以下操作的运算符(或函数):
我见过(<*>)
被称为“splat”,但它似乎与其他语言中的 splat 指的不是同一个东西。反正我试过了:
ruby - 我怎样才能 splattify 一个匿名对象,以便我可以在其上使用 &method?
&method(:method_name)
当. 需要多个对象时,我想使用这个成语method_name
。我可以在 Ruby 1.9 下执行此操作吗?
例如,如果我有
编码
在 Ruby 1.8 下工作,但不能在 Ruby 1.9 下工作。在 Ruby 1.9 下,它试图move_file(["foo.txt", "foo_20110915.txt"])
代替move_file("foo.txt", "foo_20110915.txt")
.
我如何对其进行 splattify 以使其具有正确的数量?
我知道的解决方法:
- 替换
def move_file(old_filename, new_filename)
为def move_file(*arguments)
- 替换
each(&method(:move_file))
为
each{|old_filename, new_filename| move_file(old_filename, new_filename)}
ruby - 了解范围和数组中的 ruby splat
我试图理解和之间的*(1..9)
区别[*1..9]
如果我将它们分配给变量,它们的工作方式相同
但是当我尝试直接使用*(1..9)
和时事情变得很奇怪[*1..9]
。
我猜部分问题在于操作员的偏好?但我不确定发生了什么。为什么我不能使用*(1..9)
我可以使用的相同[*1..9]
?
ruby - 什么是 Ruby 中的星号变量?
带星号的变量是什么样的*arr
?
matlab - Matlab 中是否有 splat 运算符(或等效运算符)?
如果我有一个数组(直到运行时长度未知),有没有办法以数组的每个元素作为单独的参数来调用函数?
像这样:
上下文:我有一个n
-d 数组的索引列表,Q
. 我想要的是类似的东西Q(a,b,:)
,但我只有[a,b]
。由于我不知道n
,我不能只对索引进行硬编码。
c - 在 Ruby/Inline C 中接受未定义数量的参数
我正在尝试使用带有 Ruby 的内联 C 重写一个高度递归的函数。该函数接受未定义数量的参数,即在 Ruby 中它看起来像这样:
我正在尝试使用以下代码在 inline C 中模仿这一点:
但这会产生编译错误:
这是在 C 中完成此任务的正确方法吗?如果是这样,什么可能导致此错误?如果没有,它是如何完成的?
ruby - 在构造函数中使用 splat 运算符是否有效?
在构造函数中,您经常希望将参数转换为实例变量。一种天真的方法是:
但更简单的方法是:
但我担心代码的速度,因为看起来后面的代码正在创建一个args
在前面的代码中没有创建的额外数组。从速度或效率的角度来看,是坚持前者而不使用后者更好,还是没有区别?
higher-order-functions - 是否有返回其参数的位置扩展版本的函数的名称?
splatter
在此 Python 代码中考虑:
在 n 个压缩序列上映射一个 n 元函数似乎是一个足够常见的操作,可能已经有一个名称,但我不知道在哪里可以找到它。它模糊地唤起了柯里化,似乎还有其他相关的以争论为中心的 HOF,我从未听说过。有谁知道这是否是“众所周知”的功能?在讨论它时,我目前被问题标题中使用的尴尬语言所困扰。
编辑
哇,Pythonmap
会自动执行此操作。你可以写:
它会做正确的事,为您省去splatter
编写函数的麻烦。唯一的区别是zip
返回一个列表,其长度是其最短参数的长度,而map
用 .extends 扩展较短的列表None
。
ruby - Ruby 的一元 * 运算符
可能重复:
* 运算符在 Ruby 中对这个字符串做了什么
在寻找将数组转换为哈希的简单方法时,我遇到了以下代码(类似于 .Net 在 IEnumerable 上的 ToDictionary 方法......我希望能够任意设置键和值)。
我的问题是,前面的星号有什么作用a.collect
?
顺便说一句,代码来自http://justatheory.com/computers/programming/ruby/array_to_hash_one_liner.html
python - 您可以将关键字参数扩展与常规关键字参数结合起来吗?
我想做的是:
但这不起作用。有没有办法将字典扩展与显式参数结合起来,或者我需要在第二个字典中定义显式参数,合并两者,然后扩展结果?