wolfram-mathematica - 我应该如何编写一个在 Mathematica 中应用的函数?

标签 wolfram-mathematica

我想知道如何编写一个在 Apply 中使用的函数Mathematica 中的函数?例如,我想简单地重新实现 Or功能,我发现以下

Apply[(#1 || #2)&,{a,b,c}]

不好,因为它只是 Or 'ed 列表中的前两个元素。非常感谢!

最佳答案

无论有多少变量,这都会起作用,并且是一种通用模式:

Or[##]&,

例如
In[5]:= Or[##] & @@ {a, b, c}

Out[5]= a || b || c

但是,在 Or 的情况下,这还不够好,因为 OrHoldAll和短路 - 也就是说,它首先停止 True声明,并保持其余部分未评估。例子:
In[6]:= Or[True, Print["*"]]

Out[6]= True

In[7]:= Or[##] & @@ Hold[True, Print["*"]]

During evaluation of In[7]:= *

Out[7]= True

不过这没问题:
Function[Null,Or[##],HoldAll],

例如,
In[8]:= Function[Null, Or[##], HoldAll] @@ Hold[True, Print["*"]]

Out[8]= True

并且可以在这种情况下使用(当您不想评估您的参数时)。请注意,这使用了未记录的形式 Function .在 R.Maeder 的“Programming in Mathematica”一书中可以找到这种形式的提及。

HTH

关于wolfram-mathematica - 我应该如何编写一个在 Mathematica 中应用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867076/

相关文章:

wolfram-mathematica - 如何在 Mathematica 9 中求解方程组

string - Wolfram Mathematica 从多个文件导入数据

language-features - 优雅地更改变量列表 : Generalization of AddTo, TimesBy 等

wolfram-mathematica - 控制表达式中变量的顺序

csv - Mathematica - 导入 CSV 并处理列?

function - 数学 : Plotting a module with FindRoot in it

list - 使用字符串列表创建变量

wolfram-mathematica - 在 Mathematica 中定义自定义符号

wolfram-mathematica - 在图像中查找颜色 : can Nearest do it?

wolfram-mathematica - 在Mathematica中使用BinCounts或直方图进行FindFit