#计算器 #命令行 #cli #加载文件

app kalk_cli

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

31个版本

0.5.4 2021年5月31日
0.4.1 2021年5月18日
0.3.14 2021年2月22日
0.3.9 2020年12月28日
0.2.0 2020年6月18日

#1293数学

Download history 4/week @ 2024-02-25 3/week @ 2024-03-10 108/week @ 2024-03-31 1/week @ 2024-04-07

每月109次下载

MITLGPL-3.0+

17KB
269

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

Crates.ionpm GitHub Docs.rs Build status

看板 | 网站 - 在这里试用!

功能

  • 运算符:+,-,*,/,!
  • 分组:( ), ⌈⌉, ⌋⌊
  • 预定义函数和常数
  • 用户定义的函数和变量。 f(x, y) = xy, x = 5
  • 用户定义的单位(实验性)。 unit m = cm/100, 2m/50cm, 50cm to m
  • 函数的导数(高阶导数可能有点不准确)。 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
  • 加载包含预定义函数和常量的文件。例如,如果你打算用 Kalk 做物理计算,请在启动 Kalk 时加载包含物理函数/常量的文件。 -i file
  • 杂项:用分号分隔表达式,以在同一行上写入它们,使用 ans 变量来获取先前计算表达式的值。

目前有三个与 kalk 相关的库。

  • kalk:所有这一切背后的 Rust crate。
  • @paddim8/kalk:JavaScript 绑定 kalk。这使得你可以通过 WebAssembly 在浏览器中使用它。
  • @paddim8/kalk-component:一个运行 @paddim8/kalk 的网页组件,它允许你通过类似命令行界面在浏览器中使用 kalk。

安装

二进制文件

Linux、Windows 和 macOS(64 位)的预编译二进制文件可在 发布页面 上找到。

编译

最低 rust 版本:v1.36.0。确保你已经安装了 diffutils gcc makem4如果你使用 Windows: 遵循此处说明(不要忘记在 MSYS2 中安装 mingw-w64-x86_64-rust)。

Cargo

运行 cargo install kalk_cli

手动

  1. 进入 kalk_cli 目录。
  2. 运行 cargo build --release
  3. targets/release 获取二进制文件

语法

更完整的参考可以在 网站上 找到

函数

定义: name(parameter1, parameter2, ...) = expression
例子: f(x) = 2x+3

使用: name(argument1, argument2)
例子: f(2)

变量

定义: name = expression
例子: x = 3

使用: name
例子: x

贡献

kalk 和 kalk_cli (Rust)

在修改 kalk 库(在 kalk/ 目录下)后,您可以通过进入项目根目录并执行 cargo run 来轻松尝试这些更改。这将启动带有新更改的 kalk_cli。如果您使用的是 Windows,您需要按照 此处说明 进行操作,同时确保在 MSYS2 中安装 mingw-w64-x86_64-rust

kalk_web(Svelte、TypeScript、Sass)

运行

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

kalk_mobile(Android)

运行

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

依赖项

~11MB
~200K SLoC