5 个版本 (重大更改)
0.5.0 | 2024年2月12日 |
---|---|
0.4.0 | 2023年11月3日 |
0.3.0 | 2023年9月26日 |
0.2.0 | 2023年9月20日 |
0.1.0 | 2023年7月12日 |
#223 in 科学
每月下载量 146 次
在 3 个库中使用 (通过 numbat)
4KB
主要功能

点击了解更多。
物理维度作为类型
Numbat 拥有静态类型系统,其中物理维度(如 Length
和 Time
)充当类型。常量和函数的定义可以包含类型注解,这些注解将得到静态强制执行。如果未指定类型,将自动推断(如截图中的 Speed
、Money
和 Frequency
)。
参见 这篇文章 了解更多关于 Numbat 类型系统信息。
一等物理单位
小袋鼠(Numbat)专注于具有单位的计算。因此,单位被视为一等公民。它们可以用多种方式输入(如km/h
或kilometer/hour
,GiB
或gibibytes
,°
或degree
,m²
或m^2
)。新单位可以现场引入(如unit pixel
)。兼容的单位可以轻松转换(使用->
运算符)(如30 km/h -> mph
,1 mrad -> degree
,5 in + 2 ft -> cm
,27 weeks -> days
)。并且使用各种启发式方法简化单位表达式(如15 km/h * 30 min = 7.5 km
)。
全面的标准库
小袋鼠的标准库提供了大量的物理维度和单位(国际单位制、美国公制、英制、航海制、天文学制、原子制、核物理制等)。请参见此参考页面以获取完整概述。它还包含大量的数学和物理常数以及一系列预定义函数。
严格的语法
小袋鼠的解析器永远不会试图在语法错误输入上变得“聪明”。这意味着你将得到一个(描述性的)错误消息,或者你可以相信你的计算结果。
出色的错误消息
小袋鼠旨在提供描述性和有帮助的错误消息。
交互式终端
小袋鼠已被设计用于交互式用例和小型“一次性”计算。在不带任何参数的情况下打开numbat
解释器将启动一个具有熟悉的readline界面的REPL,包括命令历史记录、Ctrl-R搜索或制表符补全等所有常用功能。
模块化和可定制
整个物理维度和单位系统都在小袋鼠的标准库中指定,该库是用小袋鼠语言本身编写的(见此自定义文件)。例如,只需一行(如unit bathtub = 150 L
)就足以添加新单位。用户甚至可以选择编写自己的prelude
模块,从而允许对单位系统进行任意修改。
断言
凭借其静态类型系统,Numbat已经在物理维度级别上强制执行计算的正确性。但一些检查只能在运行时进行。Numbat提供了一个assert_eq
过程,允许您使用assert_eq(12 ft, 1 in)
检查精确相等,或者使用assert_eq(c, 300_000 km/s, 1% × c)
检查近似相等。这可以确保在计算结构调整过程中,中间结果不会发生变化。
非功能特性
Numbat是一个科学计算器。它不是一个解决微分方程或计算积分的计算机代数系统。请尝试WolframAlpha。
没有图形用户界面,如x²
、1/x
或DEG/RAD
这样的按钮。Qalculate!是一个支持文本和图形输入的出色工具。
Numbat支持广泛的物理单位。如果您需要更全面的解决方案,请考虑做出贡献。或者尝试GNU units。
安装
有关如何安装Numbat的原生命令行版本的详细信息,请参阅此页面。
开发
运行Numbat CLI
cargo run -- <numbat args>
安装CLI版本
cargo install -f --path numbat-cli
运行所有测试
cargo test
正在处理prelude
如果您正在处理Numbat的标准库,则方便地将环境变量NUMBAT_MODULES_PATH
指向numbat/modules/
文件夹。这样,您无需重新编译Numbat即可查看更改。
或者,您可以从~/.config/numbat/modules
创建到存储库中numbat/modules/
文件夹的符号链接(有关其他操作系统的标准路径,请参阅此页面)。
联系我们
要联系我们,请打开GitHub问题或讨论,或者访问Libera.Chat上的#numbat
(Web聊天链接)。
依赖项
~1.2–1.8MB
~32K SLoC