Mathematica 函数右下标有无的区别
来源:互联网 发布:javascript面试 编辑:程序博客网 时间:2024/06/05 18:38
文章转载自
简单地说,如果只写f[x],那就只定义了f[x]的值。因为这里的x就是符号x。
但写f[x_]的话,这里的x_就不再是x这个符号本身,而是一个模式,它可以代表任何东西。
当然还可以给模式加一些条件。
Mathematica会自动给f的定义排序,特殊的排在前面,一般的排在后面。这样,计算f[某个东西]时,它会先看这个东西是不是x;如果是的话,那就等于1;如果不是的话,再看它是不是大于0:如果是的话,那就等于3;如果不是的话,就只剩下最一般的定义,那就是等于2。
这样就可以针对自变量的不同取值范围给出不同的定义。这样在定义一些分段函数或者递归定义的函数的时候就比较方便。比如说我们可以这样定义阶乘:
我们还可以用更复杂的模式。比如说可以规定自变量的形式。下面定义的这个函数可以把只有一个元素的列表中的那个元素取出来。
还可以用两道下划线代表列表中的连续几项,三道下划线代表列表中长度可以为0的连续几项。注意
这里f[{1}]没有找到符合的定义,于是原样返回。
于是快速排序在Mathematica中可以这样写:
有人抱怨Mathematica语言可读性不好。但在我看来,模式匹配是大大提高了可读性的。
0 0
- Mathematica 函数右下标有无的区别
- var 有无的区别
- js中函数的定义有无顺序的区别
- JavaScript中函数有无括号()的区别
- LwIP有无操作系统的区别
- Scala中apply方法以及函数返回有无unit的区别
- Mathematica 有关向量与矩阵的函数
- 两个Transformed-前缀的mathematica函数
- 有无Sleep(0)的区别
- 【fk_index】外键中有无索引的区别
- 每天进步一点点:有无逗号的区别
- HTML引入文件有无下划线的区别
- ajax有无contentType: "application/json"的区别
- go channel有无缓存的区别
- 为可拖动的窗体创建右下标
- 聆听函数的声音:Mathematica的声音函数试验
- mathematica自定义函数
- Mathematica函数大全
- java架构师之路:JAVA程序员必看的15本书的电子版下载地址
- [转]VC获取各类指针
- GUI_台球游戏核心功能开发JAVA077-082
- 全屏布局
- 如何有效控制需求变更
- Mathematica 函数右下标有无的区别
- [HotSpot VM] JVM调优的"标准参数"的各种陷阱
- c++11特性之std::thread--进阶二
- java入门程序100例学习笔记(005递归调用)
- Facebook Android客户端热更新
- ListSet_有序表搜索
- 纹理贴图原理总结
- 第7讲项目1----------正差值
- 【D3.js数据可视化实战】--(3)桑基图(sankey)的绘制