说明:本篇入门笔记以官网文档为主,只是起到辅助作用,需要入门的dalao可以自行学习。
pdf版文件阿里云盘下载
目录1. 进入官网文档2. 快速编程入门2.1 交互式用法2.2 笔记本文档2.3 内置函数2.4 符号表达式2.5 列表2.6 迭代器2.7 赋值2.8 模式2.9 函数定义2.10 纯函数2.11 函数应用2.12 函数式与运算符2.13 选项2.14 图形2.15 交互式界面2.16 过程2.17 数值2.18 字符串2.19 关联2.20 自然语言输入2.21 真实世界实体2.22 解释器2.23 云部署2.24 制作文档2.25 管理会话2.26 外部连接
1. 进入官网文档
方法一:
方法二:
最终学习界面:
接下来就可以开始学习啦!!
因为网站在国外,可能会有点慢,等待的时候可以回顾学过的内容,不要浪费时间。
2. 快速编程入门
2.1 交互式用法
在桌面或网页上的一个 Wolfram 笔记本,只需敲入输入,然后按 SHIFT+ENTER 来进行计算
In[n] 和 Out[n] 标签会连续标记输入和输出. 您可以使用 % 指定最近的输出,但是最好是定义一个变量.
2.2 笔记本文档
Wolfram 笔记本在电脑桌面或网页上均可使用, 它能将代码与文本、图形和界面等一起混合使用
笔记本是按单元组织的,并由右边的方括号指定
双击单元方括号打开或关闭单元组
在单元间点击可以获取水平插入条,以便创建一个新的单元
拷贝、粘贴、删除任何单元集合等.选中任何单元集合并按住 SHIFT + ENTER 对输入进行计算.
2.3 内置函数
Wolfram 语言中有近 6,000个内置函数. 每个函数名称的首字母均为大写
PYTHON 程序员备注:
Wolfram 语言延续了一致统一设计且附带了完整整合的内置函数,而无需从不同设计和约定的不同模块和程序 库加载功能.
函数参数始终用逗号分隔.
PYTHON 程序员备注:
在 Wolfram 语言中,函数参数使用方括号 [...] 而不是括号 (...)括号用于分组.
将鼠标悬停在任何内置函数名下,可以显示 简介或 文档和范例
PYTHON 程序员备注:
Wolfram 语言比 Python 拥有更多且范围广的内置功能,可更简单和快速书写代码,并且 ExternalEvaluate 还可用于整合 Python 代码. 你可以通过 Python 用 Wolfram 客户端库中的 language.wl 在 Python 中直接访问内置 Wolfram 语言函数和符号.
2.4 符号表达式
Wolfram 语言中的一切都是符号表达式.
所有符号表达式都具有相同的基本结构:head[arguments]
函数的参数可以是任何符号表达式:
Wolfram 语言是完全符号式,因此 “未定义变量” 总保持原样:
PYTHON 程序员备注:
Wolfram 语言的符号表达式让程序员可以在其计算中不间断地将未定义变量作为符号使用. 未赋值的变量在 Python 中被认为是 “undefined”,且试图使用未定义变量会造成产生 NameError.
FullForm 总是显示底层结构.
Head 总是给出一个表达式;Length 则给出参数数目.
2.5 列表
列表 在 Wolfram 语言中用 {...} 来表示,它们可以是任何类型的表达式
PYTHON 程序员备注:
当通过 Python 用 Wolfram 客户端库 编写 Python 时,例如 list、set 和 frozenset,以及生成器函数等分类被序列化为 List.
其中可以包含各种类型的表达式:
In[1]:=
列表部分的索引从 1 开始,可以使用 [[ ... ]] 进行提取:
In[2]:=
Out[2]=
负索引从列表的结尾向前开始计数:
In[3]:=
Out[3]=
PYTHON 程序员备注:
Wolfram 语言列表用大括号 {...} 表示,然而 Python 列表使用相同方括号 [...] 语法同时表示列表和索引. The Wolfram 语言通过用 [[...]] 表示索引来避免混淆,并运用了从 1 而不是从 0 开始的直观的索引系统.
许多操作直接 “线性” 作用于列表:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
PYTHON 程序员备注:
在 Wolfram 语言中,+ 仅仅用于算数加法. 对于字符串串联等使用 <>.
列表中的 “跨度” 使用 ;;
In[1]:=
Out[1]=
PYTHON 程序员备注:
;; 跨度在 Wolfram 语言中与 Python 的 : 切片类似,但概化为多维数组.
2.6 迭代器
创建一个前 10 个平方数的表格:
In[1]:=
Out[1]=
Wolfram 语言中的许多函数使用标准的 “迭代器规范”:min、max、step:
In[2]:=
Out[2]=
另一种迭代器规范只给出一个显式值列表:
In[3]:=
Out[3]=
PYTHON 程序员备注:
这样使用 Table 与在 Python 中使用 [... for ... in ...] 列表推导式结构类型,但有更丰富的语义.
制作一个嵌套表格:
In[1]:=
Out[1]=
2.7 赋值
可以使用 = 进行赋值
In[1]:=
Out[1]=
此时为 “立即” 赋值.
也可以使用延迟赋值,当被调用时,值会被重新计算:
In[2]:=
In[3]:=
Out[3]=
In[4]:=
Out[4]=
PYTHON 程序员备注:
Wolfram 语言中,延迟赋值生成的变量在你每次使用的时候将动态重新计算其值. 为实现相同功能 Python 则需要使用更复杂的 promise 对象.
清除赋值:
In[1]:=
In[1]:=
PYTHON 程序员备注:
在 Wolfram 语言中的 =. 与 Python 的 del 操作符有相同作用.
用 Module 局部化变量:
In[2]:=
Out[2]=
PYTHON 程序员备注:
Python 函数创建本地范围变量与 Wolfram 语言中的 Module 类似。
变量名通常以小写字母为首字母,大写开头的变量一般是特别为内置对象所保留.
PYTHON 程序员备注:
在 Python 的命名习惯中,大写名称特指class;在 Wolfram 语言中,大写名称可表示任意类型的内置结构.
2.8 模式
PYTHON 程序员备注:
Wolfram 语言的模式语言允许你对任意符号结构的模式进行描述,能够将强大的 regex-like 操作泛用与任意表达式和任意格式的数据.
模式代表表达式的类型. 基本的模式结构 _(读作 “blank”)代表任意表达式.
查找列表中匹配模式 f[_] 的表达式:
In[1]:=
Out[1]=
x_(x:_ 的缩写)代表一个模式,其值将被命名为 x:
In[2]:=
Out[2]=
/. 表示 “全部替代”:
In[3]:=
Out[3]=
PYTHON 程序员备注:
在此显示的该类结构的元程序,将代码和数据等同对待,是 Wolfram 语言符号结构的独有特点.
__ (“两个 blank”) 代表任意表达式序列:
In[1]:=
Out[1]=
a | b | c 代表 a、b 或 c:
In[1]:=
Out[1]=
PYTHON 程序员备注:
| 在 Wolfram 语言模式中的使用与其在 Python 常用表达式中的用法相近. 但是,Wolfram 语言中,| 不仅用于字符串,还可用于任意类型的符号模式匹配.
它也适用于标头:
In[2]:=
Out[2]=
_h 代表任何有标头 h 的表达式:
In[1]:=
Out[1]=
:> 是一个延迟规则;类似于规则中的 :=
2.9 函数定义
在 Wolfram 语言中,函数定义只是给出模式变换规则的赋值.
定义一个带有命名为 x 和 y 的两个参数的函数:
In[1]:=
PYTHON 程序员备注:
在 Wolfram 语言的基本函数定义中,参数名称后跟随 _ (“blank”),允许参数与任意符号式模式一致. 实现了强大且灵活的函数定义,这对于默认的 Python 是不可能的. 你可以通过 Python 用 Wolfram 客户端库中的 session.function 指定 Wolfram 语言–函数从而在 Python 中使用。
使用定义:
In[2]:=
Out[2]=
清除定义:
In[3]:=
函数定义可以按序指定其值:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
任何未定义的,还保留原样:
In[3]:=
Out[3]=
您可以使用 /; 限制定义,使其只适用于某种条件:
In[4]:=
PYTHON 程序员备注:
在 Wolfram 语言中可使用与 if 语句相同的 /; 应用于函数,允许函数自由根据条件自动选择定义.
您可以定义任何左手边的变换“解构”参数的便捷方式:.
In[1]:=
In[2]:=
Out[2]=
Wolfram 语言没有所谓的类型;一切都是符号表达式. 表达式的“标头”可被作为普遍意义上的类型标志符使用.
使用一个“u 对象”或“v 对象”,给出 f 的不同定义:
In[1]:=
In[2]:=
PYTHON 程序员备注:
Wolfram 语言函数可使用内置的模式匹配来根据其任意参数的符号结构来更改行为. 在 Python 中则需要相对复杂的自定义代码或第三方程序库.
2.10 纯函数
Wolfram 语言允许调用 纯函数,由 & 结尾,第一个参数由 # 指明:
(这些也被称为匿名函数、拉姆达表达式等.)
创建一个加1的纯函数:
In[1]:=
Out[1]=
如果纯函数以表达式的标头给出,会对参数应用该函数:
In[2]:=
Out[2]=
这是一个具有多个参数的函数:
In[3]:=
Out[3]=
可用其它方法指定函数:
In[4]:=
Out[4]=
很多内置函数常使用纯函数:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
2.11 函数应用
将一个函数“映射”到多个表达式是很常见的:
In[1]:=
Out[1]=
/@(“斜杠 艾特”)是 Map 的简写形式:
In[2]:=
Out[2]=
这里使用一个 纯函数:
In[3]:=
Out[3]=
Apply 将一个函数应用于多个参数:
In[1]:=
Out[1]=
表达式所带的“层”对应于需要提取部分的索引号. 像 Map 这样的函数可以在指定的层进行操作.
Map 默认在第一层操作:
In[1]:=
Out[1]=
该操作只在第二层进行:
In[2]:=
Out[2]=
@@ 等价于 Apply,默认在第0层操作:
In[1]:=
Out[1]=
@@@ 是指“在第一层应用”:
In[2]:=
Out[2]=
@ 是指普通函数应用:
In[3]:=
Out[3]=
以下哪项表达式计算为 g[{a, b, c}]?
g@{a, b, c} 正确.
g /@ {a, b, c}
g @@ {a, b, c}
以下哪项表达式计算为 {{f[a], f[b]}, {f[c], f[d]}}?
f @@ {{a, b}, {c, d}}
f @@@ {{a, b}, {c, d}}
Map[f, {{a, b}, {c, d}}, {2}] 正确.
以下哪项计算为 {{{f[a], f[b]}}, {{f[c], f[d]}}}?
Map[f, {{{a, b}}, {{c, d}}}]
Map[f, {{{a, b}}, {{c, d}}}, {3}] 正确.
f @@@ {{{a, b}}, {{c, d}}}
2.12 函数式与运算符
Wolfram 语言中的许多内置函数可使用“函数式”或“运算符”格式.
以下给出列表中最接近 6.3 的元素:
In[1]:=
Out[1]=
以下设置一个“最接近函数”,可应用于任何指定的值:
In[2]:=
Out[2]=
使用一个指定值,将给出一个特定的结果:
In[3]:=
Out[3]=
若未提供显式数据,符号式则表示选择操作:
In[1]:=
Out[1]=
若提供一个显式数据,则会给出结果:
In[2]:=
Out[2]=
2.13 选项
PYTHON 程序员备注:
Wolfram 语言选项与 Python 中的可选参数类似,除了选项使用 -> 而不是 =,且支持符号值.
许多内置函数都有会影响其操作或输出的“选项”:
In[1]:=
Out[1]=
Options 给出一个函数的默认选项:
In[2]:=
Out[2]=
Automatic 是常见的默认设置,表示“自动选择”.
某些选项经常以纯函数给出. 当使用 & 时,需要圆括号:
In[3]:=
Out[3]=
使用 option:>value 使得每次使用选项时,value 会被重新计算.
2.14 图形
Wolfram 语言可以很容易地提取任何类型的数据并对数据可视化:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
PYTHON 程序员备注:
Wolfram 语言对图像进行了深度整合,既可以直接在 Wolfram 笔记本中显示也可以作为输入使用. Python 仅支持文本输入,并需要第三方笔记本库,例如 Jupyter 或图像库,例如 matplotlib 来显示图像.
图形使用“指令”或“样式”,并以符号表达式表示:
In[3]:=
Out[3]=
In[4]:=
Out[4]=
快速参考:图形和可视化
可视化函数有多种选项.
PlotTheme 提供了一种选择全局“主题”的方法.
2.15 交互式界面
您可以使用任何表达式,并通过控件改变变量值进行“操纵”:
In[1]:=
Out[1]=
PYTHON 程序员备注:
Manipulate 在 Wolfram 语言中极大简化了 GUI 的生成,根据参数规格自动推断控制类型和排版,并且相同代码在桌面、云端和移动设备间可无缝运行. 在 Python 中,构建交互式界面需要使用用于独立 GUI 的代码或第三方笔记本库. 在 Python 中创建用于桌面和云端的相同界面需要使用适用于各平台的不同代码.
Manipulate 使用标准的 min、max、step 迭代器规范:
In[2]:=
Out[2]=
在 Wolfram 语言中,控件只是个符号表达式:
In[1]:=
Out[1]=
通过给定一个表达式制作一个按钮,当按下按钮时进行计算:
In[2]:=
Out[2]=
快速参考:交互式控件
Dynamic 显示为表达式的动态更新值.
(这对于本地桌面版本总是可能的;但是在云中的支持可能是有限的.)
移动滑动条改变 x 的值:
In[1]:=
Out[1]=
显示当前值:
In[2]:=
Out[2]=
总显示当前值:
In[3]:=
Out[3]=
PYTHON 程序员备注:
Dynamic 一个强大且独立的 Wolfram 语言构建,在任何改变发生时,其会动态更新显示输出,而且它还构成了 Manipulate 的基本. 在 Python 中, 没有直接类似的功能,但你可以通过 ExternalEvaluate 将 Python 代码整合于 Wolfram 语言.
2.16 过程
PYTHON 程序员备注:
Wolfram 语言规整的整合了过程式、对象导向和函数式编程,让你可以自由选择并结合策略用于不同项目中.
在 Wolfram 语言中通常只需要少量的过程式编程.
(若你的大型程序中如果含有大量 If、Do、Return 等,则该程序可能需要改进.)
使用 ; 分隔不同的操作:
In[1]:=
Out[1]=
PYTHON 程序员备注:
您可以用 Wolfram 语言用任意方式在行间安排过程. 而 Python 则不能强制特定空白和代码样式规则.
Module 使用词法作用域(局部化名称).
Block 使用动态作用域(局部化值).
DynamicModule 使用文档中的作用域.
Sow/Reap 和 Throw/Catch 是过程式编程中传递数据和控制的有用方式.
PYTHON 程序员备注:
Throw 和 Catch 函数在 Wolfram 语言中与 Python 的 try/except 结构类似,但更加广泛. 对于特定错误处理,Wolfram 语言还包含了 Check 函数.
True 和 False 是 Wolfram 语言中的符号.
In[1]:=
Out[1]=
PYTHON 程序员备注:
Wolfram 语言使用常见符号 True 和 False; 在 Python 中, 对于每个对象必须分别定义一个 bool 属性.
在 Wolfram 语言中,If 仅为另一个内置函数:
In[1]:=
Out[1]=
PYTHON 程序员备注:
While 和 If 在 Wolfram 语言中与 Python 中的 while 和 if 类似,但可以处理符号值.
2.17 数值
PYTHON 程序员备注:
Python 用 Wolfram 客户端库自身支持多种 Python 数字类型,其中包括 NumPy 的 integer 和 float16 等.
默认情况下,Wolfram 语言会尽可能地进行精确计算:
In[1]:=
Out[1]=
PYTHON 程序员备注:
在 Wolfram 语言中有理数作为既约分数以符号形式表示. Python 中的类似功能需要导入 fractions 模块.
使用 N(可能更快)获取数值结果:
In[2]:=
Out[2]=
Wolfram 语言可以处理任何精度的数值:
In[1]:=
Out[1]=
可自动跟踪结果精度.
用 ` 以数值明确指明精度:
In[2]:=
Out[2]=
PYTHON 程序员备注:
Wolfram 语言中的数字可以像 Python 整数可变为任意大小. Floats 在 Python 中需要导入第三方库 mpmath.
对于复数,I 表示 :
In[1]:=
Out[1]=
PYTHON 程序员备注:
Wolfram 语言提供了数量不同的格式化形式,例如 ⅈ、ⅉ 和 用于虚数,并且与其他常数类似,来最大化明确性. 另外,无论数字是否为实数或复数,Wolfram 语言会在执行时候自动进行推论. Python 默认使用符号 j 来表示一个虚数,且在通用运算符中并不会一定会被运用.
矩阵是列表的列表:
In[1]:=
Out[1]=
SparseArray 给出稀疏数组.
PYTHON 程序员备注:
在 Wolfram 语言中,用例如 MatrixForm 的函数可以简单的在数组和矩阵中进行移动. 在 Python 中,默认并未提供稀疏数组并且需要第三方程序库. 此外,由于是不同的等级,这将会造成在 SciPy 中的矩阵和 NumPy 中的数组间移动时引起问题.
2.18 字符串
Wolfram 语言中的字符串用双引号指定("...").
当输出为字符串时,没有双引号,除非使用 InputForm:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
用 <> 连接字符串:
In[3]:=
Out[3]=
PYTHON 程序员备注:
<> 在 Wolfram 语言中特别用于连接字符串,目的是为避免使用 + 而产生模糊.
字符串可以包含任何 Unicode 字符,输入名字可以是 \[Alpha],快捷键 ESC A ESC, 明确的 Unicode,例如 :03b1,或从面板中输入 .
PYTHON 程序员备注:
Python 3 和 Wolfram 语言字符串都默认使用 Unicode. 在 Python 2 中,除非特别定义为 Unicode,字符串默认使用 ASCII.
字符串模式使用 ~~ 组合带有模式结构的字符串:
In[1]:=
Out[1]=
模式 p... 中指明 p 的零次或更多次重复.
RegularExpression 允许紧凑的正则表达式符号.
PYTHON 程序员备注:
Wolfram 语言字符串模式用普通模式语法提供了强大的字符串匹配, 对于可读性和直观性进行了优化. Python 中最接近的是用 regex 的字符串匹配,其与 Wolfram 语言的 RegularExpression 函数作用相近.
字符串模版 使用 `` 指明“插入符”,并用 <* ... *> 指明要计算的表达式:
In[1]:=
Out[1]=
PYTHON 程序员备注:
TemplateApply 在 Wolfram 语言中与 Python 的 % 或 format 函数的作用类似,除了 Python 中不支持用 <* ... *> 进行行内计算.
2.19 关联
PYTHON 程序员备注:
Associations 在 Wolfram 语言中与 Python 的字典作用类似. 使用 Association,程序员可以用高效的查找和更新将键值相关联,即使有上百万种类元素,同时还需要在不使用例如 Python 的 OrderedDict 的特定的数据结构来保持这些元素的插入顺序. 当通过 Python 用 Wolfram 客户端库进行 Python 编程时,dict、OrderedDict 和 Series(来自 Pandas 库)等类似分类对 Association 串行化.
关联将把键符与其值相关联:
(用 -> 输入 →)
In[1]:=
Out[1]=
(关联中的键经常使用字符串,但它不是必需的.)
将关联应用于一个键给出对应的值:
In[2]:=
Out[2]=
在纯函数中,#key 选出在关联中对应于"key"的值:
In[1]:=
Out[1]=
你可以混合关联和列表,用 [[ ... ]] 选出部分:
In[1]:=
Out[1]=
字符串模板适用于关联(与 XML 和笔记本模板相同):
In[1]:=
Out[1]=
2.20 自然语言输入
在行首敲入 = 指定自然语言输入:
In[1]:=
Out[1]=
很多时候,你可以从自然语言中产生代码:
In[2]:=
Out[2]=
用 == 获取完整的 Wolfram|Alpha 报告:
In[1]:=
Out[1]=
2.21 真实世界实体
在 Wolfram 语言中,真实世界实体只是另一种符号表达式.
Wolfram 语言知道数千种真实世界实体:
国家 城市 化学品 物种 电影 人物 卫星 机场 公司 ...
使用自然语言指定实体很方便:
In[1]:=
Out[1]=
实体有很多属性. 这是其中的一个值:
In[2]:=
Out[2]=
用 entity["Properties"] 找到属性列表.
当输入自然语言时, 用于消除歧义:
In[1]:=
表示一个实体类:
In[1]:=
Out[1]=
使用 CTRL+= 输入单位和度量:
In[1]:=
Out[1]=
InputForm 显示符号表达式的结构:
In[2]:=
Out[2]=
GeoPosition 代表一个地理位置:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
DateObject 代表日期/时间:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
2.22 解释器
用 Interpreter 解释自然语言的很多类型和其他输入:
数字 日期 颜色 位置 语言 电影 化学品 图像 ...
In[1]:=
Out[1]=
In[2]:=
Out[2]=
Interpreter 处理需要诠释意义的“语义”类型:
In[1]:=
Out[1]=
它也处理需要计算的类型:
In[2]:=
Out[2]=
Restricted 让你限制允许的输入(例:仅在某个范围的数值).
2.23 云部署
CloudDeploy 将对象部署于 Wolfram Cloud.
创建一个 “hello” 字体大小为 100 点的网页:
In[1]:=
Out[1]=
云对象以一个可以浏览的唯一网址形式给出:
部署一个动态界面:
In[1]:=
Out[1]=
该界面可用于任何浏览器:
部署 笔记本的任何内容(动态或非动态),并保留其样式.
使用 EmbedCode 设置 iframes 等的内嵌.
使用 CloudDeploy[Delayed[...]] 部署每次请求时会被重新计算的表达式.
创建和部署表单界面:
In[1]:=
Out[1]=
任何 Interpreter 类型可被用于表单中的一个字段:
In[2]:=
Out[2]=
语义类型会产生诠释自然语言的 “智能搜索栏”:
在云端部署一个网页 API:
In[1]:=
Out[1]=
调用 API:
2.24 制作文档
在笔记本中制作标题、章节和文本单元等:
PYTHON 程序员备注:
Wolfram 语言笔记本本身支持完整的格式和样式,用于创建在桌面、移动设备和 Wolfram Cloud 网页中的报告、演示和其他丰富、计算性交互文档. 在三十多年的开发下,Wolfram 语言笔记本为其他笔记本界面提供了灵感,例如静态的网页 Jupyter,虽然其缺少分级结构和折叠单元的功能.
用 Grid 布局一个网格:
In[1]:=
Out[1]=
当可用时,新建 模板笔记本 让你创建一个模板笔记本:
GenerateDocument 从模板中产生一个文档,计算模板表达式并从提供的关联中填充模板插符.
PYTHON 程序员备注:
模板笔记本与 Wolfram 语言中的其他结构同样可用符号操作. 附加新信息可用多种内置函数规整有效地填充模板插符,例如 TemplateApply,可用于创建文档.
2.25 管理会话
% 代表最近的输出; %n 代表结果 Out[n].
PYTHON 程序员备注:
Wolfram 语言中的 % 与 IPython 所用的 % 或 %% 相同,但是必须在 Python 上另外进行安装 IPython. 另外,你可以即刻用其进行计算并操作其他部分代码中的 %n. 这在 IPython 中是不行的.
使用 CMD+L (ALT+L)将最近的输入复制到当前输入.
若在行尾使用 ; 则不会显示输出:
In[1]:=
PYTHON 程序员备注:
除了尾行之外,Wolfram 语言中的分号可以限制显示输出.
% 仍然适用:
In[2]:=
Out[2]=
使用 Short 获取输出的简短摘要:
In[1]:=
Out[1]=
使用 //function 将一个函数应用于尾行:
In[2]:=
Out[2]=
如果你需要结束计算,在菜单选项中选择放弃计算,或按 CMD+.(Mac),或 ALT+.(其他).
2.26 外部连接
Import 与 Export 自动处理来自文件、程序、网页等的数百种格式:
In[1]:=
Out[1]=
PYTHON 程序员备注:
Wolfram 语言用 Import 和 Export 函数统一了上百种不同的导入和导出的文件类型. Python 的文件格式支持则区别于不同程序包和程序库,通常含有不同语义的数据表述.
Wolfram 语言精选许多外部 API 连接:
In[1]:=
Out[1]=
The 设备框架 允许来自于 连接设备的直接输入:
In[1]:=
Out[1]=
PYTHON 程序员备注:
Wolfram 语言的内置监管里连接和配置允许无缝访问上千种设备和外部 APIs,在 Python 中则需要更多工具和程序库来实现.
使用 EmbedCode 创建从其他语言调用一个 即时 API 的代码:
In[1]:=
Out[1]=
对于介于 Wolfram 引擎和其他程序间的双向通讯使用 WSTP.
使用 C/Link、J/Link、等等. 创建外部代码与 WSTP 进行交互.
PYTHON 程序员备注:
除使用 WSTP 和调用即时 API 之外,Wolfram 语言还可通过 Python 用 Wolfram 客户端库或使用 WolframScript 从 Python 中调用来计算本地或基于云端的 Wolfram 引擎.
在行的起始键入 > 指定外部计算的系统(Python、NodeJS等):
计算器解释输入并返回 Wolfram 语言表达式:
In[1]:=
Out[1]=
用 ExternalEvaluate 来指定计算器的选项:
In[2]:=
Out[2]=
PYTHON 程序员备注:
ExternalEvaluate 支持 Python 2.4+ 和 3.6+,以及对 NumPy 和 PIL 安装包的的直接整合.