Quantcast
Channel: 少数派
Viewing all articles
Browse latest Browse all 13768

用自然语言的方式做计算:Numi 计算器

$
0
0

说实话,喵老师刚刚打开 Numi的时候基本上惊呆了,毕竟很久没有看到设计如此优雅清爽的软件了,要不是默认打开的 Example 文件上一堆演算,很难把这个漂亮的「记事本」和一个「计算器」软件联系起来:

请输入图片标题

是的,正如你所见,这个计算器就像在记事本里打草稿记流水账,然后优雅的在右边帮你显示一个答案,一切即自然又优美,不得不说非常的赏心悦目「GORGEOUS」。Markdown 一样的简洁语言风格外加清爽的语法着色,每次的演算和账单都可以以文本形式永久保存,如果熟悉 Mathematica 软件的理工科同学,应该对这个简化版的「Notebook」感到并不陌生,甚至在许多自然语言处理的细节上,Numi 相较于 Mathematica 显得更加亲民。

请输入图片标题

其实 Numi 并不是「自然语言文本计算器」的鼻祖,早在 2013 年底 @化学心情 撰写的「能听懂人话的计算器:Soulver」中介绍到的 Soulver 就是一款老牌的文本计算器,此外 Soulver 还有 Mac 版本「这不是你常见的那种计算器,它善解人意:Soulver for Mac」。但与古老而笨重的 Soulver 相比,Numi 这个后起之秀在软件的颜值上可以说紧跟了时代的潮流,淡雅的白色和简约的黑色(夜间模式)配上 Coding Style 的语法着色,很有现代 IDE 或文本编辑器的神韵,而全身上下极少的按钮和交互彻底把界面让给了「计算」这一核心。而且,相较于 Soulver 全各个平台独立 $10+ 的收费,免费的 Numi 显得很温文尔雅,更何况,Numi 还支持非常丰富的扩展。这些,后文我都会详细地介绍到。

首先,作为一款「计算器」,最重要的就是计算功能,我们先来看看 Numi 支持一些什么样的计算。

单位转换

使用关键词 in/into/to/as来进行单位转换,多个单位进行混合运算的时候 Numi 会自动进行转换。

请输入图片标题

常见货币单位如下(来源 ISO 4217):

货币名称货币符号货币名称货币符号
人民币RMB / CNY美元USD / $
日元JPY欧元EUR
英镑GBP德国马克DEM
瑞士法郎CHF法国法郎FRF
加拿大元CAD澳大利亚元AUD
港币HKD奥地利先令ATS
芬兰马克FIM比利时法郎BEF
爱尔兰镑IEP意大利里拉ITL
卢森堡法郎LUF荷兰盾NLG
葡萄牙埃斯库多PTE西班牙比塞塔ESP
印尼盾IDR马来西亚林吉特MYR
新西兰元NZD菲律宾比索PHP
俄罗斯卢布SUR新加坡元SGD
韩国元KRW泰铢THB

时区转换

可以使用 timenow关键词来获取本地时间,当想要获取别的时区的时间时,可以在关键词前面加上时区缩写作为前缀或者结合 in关键词把时区作为后缀。转换的结果会实时与全球时间同步,因此任何时刻运算的结果都会基于当前时刻给出。(截止到发稿为止,此功能尚有小部分故障,不能正确转换时区)

PST timeBeijing timeTime in Madrid2:30 pm HKT in Berlin

同时,也可以利用 Numi 计算两个时区之间的时差。

数学运算

你可以用运算符号或者关键词来进行数学运算,括号前后可以省略乘号

请输入图片标题

常见的数学运算符号:

运算示例
加法+, plus, and, add, with
减法-, minus, subtract, without
乘法*, x, times, multiplied by, mul
除法/, divide, divided by
乘方^
按位与&
按位或``
按位异或xor
左位移<<
右位移>>
取模/求余mod

数制换算

除了使用十进制数系以外,Numi 还提供了二进制、八进制和十六进制数系,分别使用 0b0o0x前缀即可。另外,还可以使用 sci或者 scientific关键词来把结果显示为科学计数法

请输入图片标题

百分比

除了简单的使用加/减一个百分比之外($10 - 40%),Numi 还提供了额外的高级用法:

运算示例
百分比值20% of $10
按百分比增加5% on $30
按百分比减少15% off 40RMB
相对百分比$50 as a % of $100
多出百分比$70 as a % on $20
少于百分比$20 as a % off $70
按百分比反推5% of what is 60RMB
按多出百分比反推5% on what is 60RMB
按少于百分比反推5% off what is 60RMB

请输入图片标题

尺度缩写

对于英文用户而言,千 thousand百万 million十亿 billion是常用的尺度单位,用以描述大数字。因为 m的单位符号,K卡尔文的单位符号,所以 Numi 采用大小写敏感的方式,用 M来代替 million的缩写,用 k来代替 thousand的缩写。

$2k 2M RMB

变量和常数

Numi 提供了 =运算符来声明变量和重复使用。需要注意的是,和大多数编程语言一样,被保护的关键词都是不能用来命名变量的。比方说,K就不能命名变量,因为它是热力学单位开尔文的单位符号。同样,变量命名也不能以数字开头。

请输入图片标题

然后 Numi 内置了一些常用的数学常数:

常数
Pi3.1415926536
E2.7182818285

函数

Numi 还内置了许多常见的函数:

描述函数示例
开 N 次根rootroot 2 (8)
开平方根sqrtsqrt 16
开立方根cbrtcbrt 8
取绝对值absabs(-8)
取对数loglog 2 (10)
自然对数lnln 3
阶乘factfact 5
四舍五入取整roundround 3.45
向上取整ceilceil 3.76
向下取整floorfloor 2.56
正弦函数sinsin 45 degree
余弦函数coscos 3.45
正切函数tantan 8
反正弦函数arcsinascsin 1 in degree
反余弦函数arccosarccos 0.5 in degree
反正切函数arctanarctan 30
双曲正弦函数sinhsinh 3
双曲余弦函数coshcosh 9
双曲正切函数tanhtanh 11

需要注意的是,Numi 的三角函数默认使用的是弧度制,如果想使用角度进行运算,需要使用 degree关键词。

结果重用

Numi 支持部分的结果重用,比如可以使用 prev关键词来调用上一行的结果;使用 sum或者 total关键词来计算上面所有行(直到空白行为止)的加和:

请输入图片标题

常用单位制的支持

温度:kelvin, celsius, fahrenheit。

长度:meter, mil, points, lines, inch, hand, foot, yard, rod, chain, furlong, mile, cable, nautical mile, league。需要注意 in由于是单位转换的关键词,所以并不用来代表英寸(inch)。

面积:square或者 sq加上所有长度单位均可,另外还有 hectare, are, acre。

体积:cubiccu或者 cb加上所有长度单位,同时还提供美国厨房常用的蜜汁单位:pint, quart, gallon, tea spoon, table spoon, cup。

重量:gram, tonne, carat, centner, pound, stone, ounce。

角度:radians 和 degree。

格式

在行首使用 #符号来确定一个头部,相当于这张稿纸的标题。如果你想注释掉行内的一个部分,则使用双引号 "",而如果要注释掉整行的话,则需要使用双斜杠 //

请输入图片标题

丰富的扩展

如果说 Numi 定义了一种耳目一新的「文本计算」方式的话,那其可以支持 JavaScript 语言的扩展可以说进一步把软件的可用性提升到了更高的高度。作者在 GitHub上提供了详细的文档教你如何使用 JavaScript 语言来扩展 Numi 的全局变量、单位和函数。

而对于我而言,最方便的一个扩展当属对于 Alfred 的支持。Alfred 的 PowerUser 可以下载并添加 Alfred Workflow导入这个动作。

Numi 的关键词是 n,比如前面的计算百分比的算式,在 Alfred 中可以这样使用 n 5% off what is 60RMB:

请输入图片标题

回车可以把结果保存到剪贴板,方便在别处使用结果。

有了这个动作之后,Alfred 的计算功能得到了大幅度增强,我使用 Numi 的频率提高了许多。而且得益于我一天呼出 Alfred 上百次的肌肉记忆,让计算变得效率又便捷。

写在后面

总的说来,说 Numi 是 Mac 平台上最「美」的计算器也毫不为过。更何况,Numi 还是一款免费软件,现在可以在 官方网站直接下载,大家何不下载下来体验一番。


Viewing all articles
Browse latest Browse all 13768

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>