我应该如何编写一个在 Mathematica 中的 Apply 中使用的函数?

2024-01-12

我想知道如何编写一个在ApplyMathematica 中的函数?例如,我想简单地重新实现Or函数,我发现了以下内容

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

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


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

Or[##]&,

例如

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

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

然而,在以下情况下Or,这还不够好,因为Or is HoldAll和短路 - 也就是说,它首先停止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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该如何编写一个在 Mathematica 中的 Apply 中使用的函数? 的相关文章

随机推荐

  • javascript中的别名函数[重复]

    这个问题在这里已经有答案了 可能的重复 如果 Javascript 拥有一流的功能 为什么它不起作用呢 https stackoverflow com questions 8773579 if javascript has first cl
  • 无法在 Mountain Lion 上安装 pg gem

    升级到 Mountain Lion 后 我在使用 Rails 时遇到了很多麻烦 到目前为止 我试图解决这些问题并在互联网上搜索了几个小时 以确保我的系统具有升级后运行 Rails 的所有依赖项 我更新了我的 Homebrew 安装 我更新了
  • iOS 请求权限对话框未显示在屏幕录制或 QuickTime 视频上

    有谁知道App Store什么时候开始要求应用程序预览必须在物理设备上并显示此弹出窗口 即使当我将 iPhone Xs 镜像到 Mac 时 也不会显示弹出窗口 如果视频上没有弹出窗口 则应用商店拒绝应用预览 有人知道解决这个问题的更好方法吗
  • 将 mysqli_query 结果存储在会话中

    我想将 MySQLi 查询的结果存储为会话变量 以便我可以重用它而无需再次执行查询 我不想在网站的每个页面上或每次刷新页面时都执行相同的查询 我已经尝试了下面的代码 但出现了诸如 对象无法存储在会话中 和 mysqli fetch arra
  • 在node.js中读取csv文件的内容

    我正在尝试在nodejs中实现一个模块 刚刚开始在nodejs中工作 其要求如下 上传 csv 文件 读取 csv 文件的内容 目前用于restful api的框架是 express 4 2 0 和用于文件上传的multer 现在我已经在我
  • 如何将字符串处理为子列表层?

    这是示例表单 稍后我将尝试用文字解释它 我有一份分解字符串的清单 say a a a b a a b a c a b a a c a c a 其中 b 是标准 1 c 是标准 2 我想把它分成这样的列表 a a a b a a b a c
  • CSS3 动画颜色分步

    我正在尝试在按钮上制作一个动画来改变color and background color从白色到黑色 我不想要任何褪色 所以我发现我可以使用animation timing function step 然而 当我使用它时 动画不会达到黑色
  • 使用Sphinx创建PDF时如何避免“嵌套太深”错误?

    我有一个相当复杂的项目 有相当大的文档 转换正常用户指南使用 Sphinx 转为 PDF 通过make latexpdf效果很好 但是 如果我还想在所有函数 类和模块文档中包含库引用 则该命令将失败并显示 LaTeX Error Too d
  • AngularJS 时间选择器 ng-change

    我正在使用 AngularJS TimePicker ui bootstrap timepicker 我想在时间选择器更改时触发一个事件 我寻找 ng change 属性 但没有找到 我的目的是我想保存时间更改时对模型所做的更改 现在我已经
  • 无法启动接收器 com.google.firebase.iid.FirebaseInstanceIdInternalReceiver

    我的应用程序集成了 FCM 来接收推送通知 并且运行正常 但是 我面临安装时随机崩溃的问题 它是非常随机的 发生在 OS 6 0 设备上 直到最新 但随机发生 代码方面 在服务类中仅显示通知代码已编写并在清单中添加了服务 我在应用程序加载方
  • 如何使用“dis.dis”来分析性能?

    我正在尝试使用 pythondis http docs python org 2 library dis html用于试验和了解性能的库 以下是我尝试过的实验及其结果 import dis def myfunc1 dictionary t
  • 如何将vuejs for循环索引值作为HTML按钮onclick javascript函数的参数传递

    div div
  • MongoError 未知组运算符

    我正在使用 NodeJS 的 MongoDb 驱动程序 我在使用聚合时遇到问题 错误是 name MongoError message 未知的组运算符 id ok 0 errmsg 未知组运算符 id code 15952 对于以下脚本 M
  • 将 texreg 或 stargazer R 中的模型显示格式设置为科学

    我刚刚运行了一个统计模型 我希望它使用 stargazer 将模型的结果显示为表格 但是 大数字会完整显示 fit2 lt lm A B data C stargazer fit2 type text 以此表作为结果 Dependent v
  • 线程结束监听器。爪哇

    Java中是否有监听器来处理某些线程已结束的情况 像这样的事情 Future
  • Webpack 迁移 3 -> 4:错误:找不到模块“webpack/lib/optimize/CommonsChunkPlugin”

    我正在尝试从 webpack 3 迁移到 webpack 4 当我尝试运行 webpack 时 我遇到的问题是 CommonsChunkPlugin npm run webpack dev server config config webp
  • Maven Wagon 插件可以使用 scp 私钥吗?

    Maven Wagon 插件可以配置为使用 ssh scp 私钥吗 我尝试过的所有操作仍然让 maven 在进行 scp 时询问我密码 您应该能够在中指定私钥的路径server http maven apache org settings
  • 如何在C# Windows窗体中选择TreeView中的子节点

    我的窗口窗体中有一个树视图 我使用以下函数来选择该树视图中的节点 private void FindAndSelect TreeNodeCollection collection object toSelect problem in thi
  • 如何删除桥接头而不出现错误?

    前几天 我在我的应用程序中添加了一个桥头文件 因为我试图将 Objective C 文件添加到我的 Swift 项目中 我在连接工作时遇到了困难 而且我也不知道如何实现 Objective C 文件 所以我决定重新开始 我删除了 Objec
  • 我应该如何编写一个在 Mathematica 中的 Apply 中使用的函数?

    我想知道如何编写一个在ApplyMathematica 中的函数 例如 我想简单地重新实现Or函数 我发现了以下内容 Apply 1 2 a b c 不行 因为它只是Or ed 列表中的前两个元素 非常感谢 无论有多少变量 这都会起作用 并