Functional programming Mathematica相当于Ruby';s注入

Functional programming Mathematica相当于Ruby';s注入,functional-programming,wolfram-mathematica,Functional Programming,Wolfram Mathematica,Ruby中是否有类似于inject的Mathematica函数?例如,如果我想要列表中元素的乘积,我可以用Ruby编写: list.inject(1) { |prod,el| prod * el } 我发现我可以在Mathematica中使用产品: Apply[Product, list] 然而,这对我来说还不够一般(比如,如果我不只是想要数字的乘积或总和)。与注入最接近的等价物是什么?等价物是。 我认为这更典型地称为“reduce”——反正这是Python的名称 翻译你的例子: Fold[

Ruby中是否有类似于
inject
的Mathematica函数?例如,如果我想要列表中元素的乘积,我可以用Ruby编写:

list.inject(1) { |prod,el| prod * el }
我发现我可以在Mathematica中使用
产品

Apply[Product, list]
然而,这对我来说还不够一般(比如,如果我不只是想要数字的乘积或总和)。与注入最接近的等价物是什么?

等价物是。 我认为这更典型地称为“reduce”——反正这是Python的名称

翻译你的例子:

Fold[#1*#2&, 1, list]
#1*#2&
是一个二进制lambda函数,它将其参数相乘。 在这种情况下,您可以只使用
时间

Fold[Times, 1, list]
当然,也可以对列表应用
时间

Apply[Times, list]
或者,简而言之:

Times @@ list
注意:问题中使用Product而不是Times的版本将不起作用。
是指其他东西,即的模拟。

是的,对不起,我是从内存中写的,我的意思是说
“我想这更典型地被称为“reduce”。我认为fold这个名字至少和reduce一样常见。fold函数的维基百科页面列出了10种称之为fold的语言和8种称之为reduce的语言。还要注意,“减少(高阶函数)”重定向到“折叠(高阶函数)”。