9个稳定版本
2.2.0 | 2024年4月3日 |
---|---|
2.1.0 | 2024年3月23日 |
2.0.4 | 2023年7月20日 |
2.0.3 | 2023年1月24日 |
1.0.0 | 2021年6月2日 |
#155 in 数学
27次月下载
345KB
9K SLoC
Kalker是一个支持用户自定义变量、函数、微分和积分的计算器程序/网站。它可在Windows、macOS、Linux、Android以及网页浏览器(通过WebAssembly)上运行。
特性
- 运算符:
+
、-
、*
、/
、!
- 括号:
()
、[]
、⌈ceil⌉
、⌊floor⌋
- 向量:(x, y, z, ...)
- 矩阵:[x, y, z; a, b, c; ...]
- 预定义函数和常量
- 用户自定义函数和变量。
f(x, y) = xy
,x = 5
- 使用牛顿法求解根(例如 x^2 = 64)。注意:估计值并限于一个根
- 函数的导数(噪声函数或高阶导数可能有点不准确)。
f'(2)
、sin'(-pi)
- 集成。代码:
∫(0, pi, sin(x) dx)
或∫(0, π, sin(x) dx)
,有时可能会有轻微偏差 - 理解相当模糊的语法。例如:
2sin50 + 2xy
- 语法高亮
- 在Tab键上完成特殊符号。例如,输入
sqrt
并按Tab键。它将转换为√
- 求和函数:
sum(start, to, expression)
例如:sum(1, 3, 2n+1)
等于2*1+1 + 2*2+1 + 2*3+1
=15
- 分段函数:
f(x) = { f(x + 1) if x <= 1; x otherwise }
,在输入最后的}
之前按下Enter键将创建新行而不提交 - 加载包含预定义函数和常量的文件。例如,如果您打算使用kalker进行物理计算,请在启动kalker时加载包含物理函数/常量的文件。这可以通过使用
-i file
标志或通过将文件放入特定目录并在kalker内部执行load filename
来实现。更多信息请参见[这里](https://kalker.xyz/#files) - 不同的数字基数:可以是如
0b1101
、0o5.3
、0xff
这样的格式,或者如1101_2
这样的格式。后一种格式不支持字母,因为它们将被解释为变量 - 杂项:通过分号分隔表达式以在同一行上写入,使用
ans
变量来获取先前计算表达式的值
安装
包管理器
macOS
brew安装kalker
Arch Linux
kalker
在AUR中,例如:yay -S kalker
Nix/NixOS
在 nixpkgs
仓库中的 kalker
。最新版本也可以作为一个 flake
获取。
NetBSD
pkgin install kalker
(来自 官方仓库
)
二进制文件
Linux、Windows 和 macOS(64 位)的预编译二进制文件可在 发布页面 获取。
编译
最低 Rust 版本:v1.36.0。请确保已安装 diffutils
、gcc
、make
和 m4
。 如果使用 Windows: 遵循此处说明(不要忘记在 MSYS2 中安装 mingw-w64-x86_64-rust
)。
Cargo
运行 cargo install kalker
手动
- 进入
cli
目录。 - 运行
cargo build --release
- 从
targets/release
获取二进制文件
库
目前有三个与 kalker 相关的库。
- kalk:提供所有功能的 Rust crate。
- @paddim8/kalk:JavaScript 绑定
kalk
。这使您可以通过 WebAssembly 在浏览器中使用它。 - @paddim8/kalk-component:运行
@paddim8/kalk
的 Web 组件,让您可以通过类似命令行界面在浏览器中使用 kalk。
语法
完整的参考可以在 网站上 找到。
贡献
kalk 和 cli(Rust)
在修改 kalk 库(在 kalk/
中)后,您可以轻松尝试通过转到项目目录的根目录并执行 cargo run
来尝试它们。这将启动带有新更改的 kalker(cli)。如果您使用 Windows,您需要 遵循此处说明,但也要确保在 MSYS2 中安装 mingw-w64-x86_64-rust
。
所有 Rust 代码都应使用 `rustfmt` 格式化
web(Svelte、TypeScript、Sass)
运行
npm install
npm run dev
- 当更改时,这将自动重新编译项目
移动(Android)
运行
npm install
npm run build
npx cap sync
- 使用 Android Studio 或直接使用 Gradle 构建项目。
依赖关系
~11MB
~194K SLoC