#计算器 #命令行 #数学表达式 #命令行界面 #加载文件

app kalker

一个支持用户自定义函数、变量和单位,并能处理相当模糊语法的计算器

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次月下载

MITLGPL-3.0+

345KB
9K SLoC

Kalker是一个支持用户自定义变量、函数、微分和积分的计算器程序/网站。它可在Windows、macOS、Linux、Android以及网页浏览器(通过WebAssembly)上运行。

Crates.io npm GitHub Docs.rs Build status

网站 - 尝试一下这里!

特性

  • 运算符:+-*/!
  • 括号:()[]⌈ceil⌉⌊floor⌋
  • 向量:(x, y, z, ...)
  • 矩阵:[x, y, z; a, b, c; ...]
  • 预定义函数和常量
  • 用户自定义函数和变量。 f(x, y) = xyx = 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)
  • 不同的数字基数:可以是如0b11010o5.30xff这样的格式,或者如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。请确保已安装 diffutilsgccmakem4如果使用 Windows: 遵循此处说明(不要忘记在 MSYS2 中安装 mingw-w64-x86_64-rust)。

Cargo

运行 cargo install kalker

手动

  1. 进入 cli 目录。
  2. 运行 cargo build --release
  3. 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)

运行

  1. npm install
  2. npm run dev - 当更改时,这将自动重新编译项目

移动(Android)

运行

  1. npm install
  2. npm run build
  3. npx cap sync
  4. 使用 Android Studio 或直接使用 Gradle 构建项目。

依赖关系

~11MB
~194K SLoC