Mathematica 模块与 With 或 Block - 使用指南、经验法则?

2024-05-17

Leonid 在他的书的第四章中写道:“……Module、Block 和 With。这些结构在 Mathematica Book 和 Mathematica Help 中有详细解释,所以我在这里简单介绍一下它们……”

从我所读到的(能够找到的)我仍然处于黑暗之中。对于打包函数,我(简单地)使用模块,因为它可以工作并且我知道其构造。但这可能不是最好的选择。我并不完全清楚(从文档中)何时、何地或为何使用 With (或 Block )。

问题。是否有关于何时使用 Module、With 或 Block(对于包中的函数)的经验法则/指南?与 Module 相比有限制吗?文档说 With 更快。我希望能够捍卫我对模块(或其他构造)的=选择=。


更实际的区别Block and Module可以在这里看到:

Module[{x}, x]
Block[{x}, x]
(*
-> x$1979
   x
*)

因此,如果您想返回,例如x, 您可以使用Block。例如,

Plot[D[Sin[x], x], {x, 0, 10}]

不起作用;为了让它发挥作用,可以使用

Plot[Block[{x}, D[Sin[x], x]], {x, 0, 10}]

(当然这并不理想,这只是一个例子)。

另一个用途是类似的Block[{$RecursionLimit = 1000},...],暂时改变$RecursionLimit (Module不会因为重命名而起作用$RecursionLimit).

也可以用一个Block阻止对某些事物的评估,例如

Block[{Sin}, Sin[.5]] // Trace
(*
-> {Block[{Sin},Sin[0.5]],Sin[0.5],0.479426}
*)

即,它返回Sin[0.5]仅在之后评估Block已经执行完毕。这是因为Sin在 - 的里面Block只是一个符号,而不是正弦函数。你甚至可以做类似的事情

Block[{Sin = Cos[#/4] &}, Sin[Pi]]
(*
-> 1/Sqrt[2]
*)

(use Trace看看它是如何工作的)。所以你可以使用Block也可以在本地重新定义内置函数:

Block[{Plus = Times}, 3 + 2]
(*
-> 6
*)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mathematica 模块与 With 或 Block - 使用指南、经验法则? 的相关文章

  • 将声音导出为 WAV 文件

    我从来没有在 Mma 中过多地使用声音 I have t Sound List Violin SoundNote 6 我怎样才能导出t作为 WAV 文件 当我尝试显而易见的事情时 Export c test wav t I get 在这个旧
  • 从稀疏定义列表中挑选无模式下值的算法

    我有以下问题 我正在开发一个随机模拟器 它随机采样系统的配置 并存储每个配置在特定时间实例被访问次数的统计数据 代码大致是这样的 f Integer Integer 0 someplace later in the code e g ind
  • 了解内核-前端通信——为什么我的前端冻结?

    EDIT 只需确认您是否可以重现此内容就会很有用 只需一台计算机即可尝试此操作 无需远程连接 Update似乎其他人无法在 Mac 或 Win7 上重现此问题 因此它要么是 WinXP 特定的 要么是我的机器特定的 此时我要放弃了 最好有一
  • 用于出版质量图的 Python Pylab pcolor 选项

    我正在尝试使用 DFT 离散傅立叶变换 图pcolor在Python中 我之前一直使用 Mathematica 8 0 来执行此操作 但我发现 Mathematica 8 0 中的颜色条与我尝试表示的数据具有不良的一对一相关性 例如 这是我
  • 在mathematica中使用Input[]输入数据

    我怎样才能在这段代码中使输入命令对话框中的文本像这样 输入 1 元素 输入 2 元素 For k 1 k n k br Input Enter the i element AppendTo x br 确保您的变量匹配 您可以使用Row来构建
  • 如何捕获 TimeConstrained 产生的中断?

    数学有CheckAbort允许捕获和处理用户生成的和编程的函数Aborts 但它不允许捕获由以下函数生成的中断TimeConstrained and MemoryConstrained TimeConstrained CheckAbort
  • Mathematica 什么时候创建新符号?

    再会 我早些时候以为数学在当前符号中创建新符号 Context在转换输入字符串的阶段 即分配给InString 来输入表达式 即分配给In 但一个简单的例子打破了这一解释 In 1 f During evaluation of In 1 I
  • Mathematica:MathLink 错误消息

    我想我开始理解如何将用 C C 编写的函数链接到数学 我面临的问题是我不知道如何将错误消息从我的 C 包装器发送到 Mathematica 在谷歌搜索后我发现了这个MathLink 教程 http www edenwaith com dev
  • Mathematica:为什么 3D 绘图会记住最后的视点/旋转,即使在再次评估后也是如此?

    我觉得这有点烦人 我制作了一个 3D 绘图 最初它以默认方向出现 然后 我使用鼠标以某种方式旋转它 现在我再次运行该命令 期望获得原始形状 即通过鼠标旋转它之前的原始方向 但相反 它只是给了我与屏幕上相同的绘图 即它似乎保留 记住了该输出单
  • 了解跟踪*

    再会 当试图理解数学使用标准的评估顺序Trace and TraceScan最近开发的命令及其漂亮的视觉表示thread https stackoverflow com questions 5459735 the clearest way
  • Mathematica 中的输入/输出单元标签是由什么生成的以及如何向它们添加自动计时?

    当 Mathematica 计算单元格时 它会为输入单元格和输出单元格提供细胞标签 http reference wolfram com mathematica ref CellLabel htmls In Line and Out Lin
  • 可以在 Mathematica 中扩展 PDF、CDF、FindDistributionParameters 等功能吗?

    我开始使用新的 Mathematica 统计和数据分析功能进行越来越多的工作 我周二参加了 Mathematica 统计与数据分析 在线研讨会 非常棒的演讲 我强烈推荐 但我遇到了一些问题 我希望这个论坛上的人可以花点时间考虑一下 我创建了
  • 如何默认显示动画控件

    在mathematica中这个简单的控制对象中 如下所示 Control x 0 1 我们必须将鼠标指针移至对象的右上角才能获得名为 显示动画控件 的提示 然后单击它以查看播放 前进等动画控件 有没有办法通过设置一些选项来默认情况下打开所有
  • Mathematica 模块与 With 或 Block - 使用指南、经验法则?

    Leonid 在他的书的第四章中写道 Module Block 和 With 这些结构在 Mathematica Book 和 Mathematica Help 中有详细解释 所以我在这里简单介绍一下它们 从我所读到的 能够找到的 我仍然处
  • 如何在mathematica中进行函数替换

    我有这样的表情D f x y x 我想替换f x y with x y 我尝试了以下方法 D f x y x f x y gt x y and D f x y x f gt x y 但两者都不起作用 将不胜感激您的帮助 谢谢 The Ful
  • Mac 版 Wolfram Workbench 2.0 中 MUnit 的位置在哪里?

    我有 Mac 版 Mathematica 8 0 和 Wolfram Workbench 2 0 我想使用 MUnit 对我正在创建的包进行单元测试 但我发现缺少有关 MUnit 的文档 这令人沮丧 最好的资源是 第 19 11 节介绍 将
  • 是否可以从命令行调用 Mathematica 的 diff 功能?

    乌龟SVN http tortoisesvn net 也其他乌龟客户 http tortoisehg bitbucket io about html 包括一个script http osdn net projects tortoisesvn
  • Mathematica 中 PatternTest 的意外行为

    我正在研究玩具问题 以帮助我吸收 Mathematica 中模式匹配的思想 下面的代码没有按照我的预期运行 我无法弄清楚我对 PatternTest 的理解有什么问题 MatchQ 2 1 2 5 x FromDigits gt 3 y 我
  • Mathematica 执行时错误:符号名称

    Mathematica 中存在一个奇怪的 bug 多年 至少从 5 1 版开始 一直持续到 7 版 Module f L L f Do L f L i i 10 4 Timing 0 015 Null Module weirdness L
  • Mathematica 使用符号而不是数字调用 NMinimize?

    我在使用时注意到以下行为NMinimize在数学中 目标函数的第一次调用是使用变量名称 而不是像人们所期望的那样使用空间中的点 因此 例如 如果我的目标函数是一个模块 则该模块仅被调用一次 进行符号评估 然后在进一步的迭代中 使用变量空间中

随机推荐

  • 在 sbt 中将测试类导入 Scala 控制台?

    我正在使用 sbt 在标准目录布局中构建一个 Scala 项目 我想跑sbt console并导入我的单元测试 以便我可以在 Scala REPL 中使用它们 做到这一点最简单的方法是什么 是否有我可以传递给 sbt 的命令 或者我可以添加
  • 如何从 -WhatIf 处理中排除块?

    我正在编写一个 Powershell cmdlet 它需要执行命令并将其 stderr 输出存储到临时文件中以供以后处理 此输出列出了 cmdlet 稍后可能使用的 COM 端口 mostly side effect free inform
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • React 应用程序中未调用 Microsoft Graph Toolkit 组件的事件处理程序

    我正在尝试在我的 React 应用程序中使用 Microsoft Graph Toolkit 中的登录组件 它工作得很好 但我似乎无法让任何事件发生 例如 import React from react import MgtLogin Pr
  • Kubernetes / kubectl - “必须指定容器名称”,但看起来确实如此?

    我正在调试 kubectl 的日志输出 其中指出 Error from server BadRequest a container name must be specified for pod postgres operator 49202
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • Docker Toolbox Windows - 无效的卷规范

    EDIT 问题是COMPOSE CONVERT WINDOWS PATHS环境变量未设置 我尝试将其添加到Dockerfile并到一个 env文件但尚未设置 我无法设置任何新的环境变量 这就像从缓存的 Dockerfile 构建它一样 我之
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60
  • 从列表python的单个列表中删除子列表

    我已经经历过从列表列表中删除子列表 https stackoverflow com questions 47209786 removing sublists from a list of lists 但当我为我的数据集扩展它时 它不适用于我
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 将 UIButton 中的图像缩放到 AspectFit?

    我想将图像添加到 UIButton 并且还想缩放图像以适合 UIButton 使图像变小 请告诉我该怎么做 这是我尝试过的 但它不起作用 将图像添加到按钮并使用setContentMode self itemImageButton setI
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER
  • Firebase 警告:使用 Firebase Cloud Function 搜索数据时使用未指定的索引

    我构建了一个 Firebase 云函数 用于查找 IsNotificationEnabled 值等于 true 的用户 我的部分职能 export const sendPushNotification functions https onR
  • 中止来自 jsf.ajax.addOnEvent() 的 JSF Ajax 请求

    我希望有一个中心位置来监视 ajax 请求并在某些情况下中止它们 我唯一不知道要做的一件事就是实际中止来自一个中央函数的 ajax 请求 我想象解决方案看起来像这样 jsf ajax addOnEvent function data if
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • Mathematica 模块与 With 或 Block - 使用指南、经验法则?

    Leonid 在他的书的第四章中写道 Module Block 和 With 这些结构在 Mathematica Book 和 Mathematica Help 中有详细解释 所以我在这里简单介绍一下它们 从我所读到的 能够找到的 我仍然处