Emacs 带有一个十分精密的科学计算器. 就像Emacs的其他功能一样,它即强大又怪异.
calc
模块自22版开始就内置于Emacs了. calc manual 的文档很全面,但看起来也不容易懂. 希望本文能让你看起manual来更轻松一些.
manual上说可以通过 M-# .
来打开calc,但我按了没有反应,倒是可以通过 M-x calc
来打开calc.
Calc有两种模式: RPN (逆波兰表示法) 和代数表示法. calc默认使用RPN模式并且其命令也很简介,一般也就用一两个字符来表示. 大多数人更习惯于代数表示法. 代数表示法模式以引号开头,且该模式下的命令使用更长,更具有描述性的名字来表示.
举个例子,假设你想知道5的余弦是多少, 在RPN模式下,你需要按下 5
回车,然后按下 C
即可,而在代数模式下,需要输入 ‘cos(5) 再回车.
下面我以 gamma
函数为例,讲解怎样看懂manual(how to interpret the manual). manual上关于 gamma
的说明如下:
The f g (calc-gamma) [gamma] command computes the Euler gamma function. …
这句话的意思是,在RPN模式下,你先输入 gamma
函数的参数,比如说5,然后按下 fg
就得到结构了. (注意这里不是 f g
). 你也可以先输入5,然后输入 M-x calc-gamma
. 在代数模式下,你需要输入的则是 ‘gamma(5).
也就是说,manual书写的格式为:
RPN keystrokes (lisp function) [algebraic syntax].
calc模块的功能及其强大,其支持 符号运算,矩阵运算,图等等功能. — 我一辈子都用不了这么多功能. 在我看来,使用calc最大的好处是可以不用离开Emacs即可快速计算. 我觉得不适宜用calc来进行复杂的计算,理由有二: 1, 我需要中断手头的事情来查询calc中作相关计算的函数是什么. 2, 我不希望在calc中计算到一半时,发现缺少相关工具而不得不又切换到使用SciPyI,Mathematica或R上去.
Related posts: