39个稳定版本
3.2.0 | 2024年6月5日 |
---|---|
3.1.0 | 2024年5月26日 |
2.13.2 | 2024年5月14日 |
2.13.1 | 2024年4月23日 |
1.0.0 | 2023年11月12日 |
#22 in 可视化
199 每月下载量
320KB
9K SLoC
Calc
安装
源码
您可以从源码安装最新版本
git clone https://github.com/coco33920/calc
cd calc
cargo build --release
./target/release/mini-calc
Cargo
cargo install mini-calc
使用Nix
另外,您可以使用nix来构建或运行此项目。
直接运行
nix run github:coco33920/calc
您可能需要启用nix实验性功能。在这种情况下,执行以下命令:
mkdir -p ~/.config/nix && echo "experimental-features = nix-command flakes" | tee ~/.config/nix/nix.conf
从包装版本
网站上提供.deb
和.rpm
包
网站
该网站(由oranda提供支持)提供更多信息网站。
手册
如果您需要PDF版本,这里有手册。
贡献者
姓名 | 角色 | 网站 | |
---|---|---|---|
Charlotte THOMAS | 主要开发者/维护者 | 主页 | |
Léana 江 | 帮助,清理 | 网站/博客 | |
Sigmaficient | Nixify | 网站 |
待办事项列表
待办事项列表已完成,因此已折叠
待办事项列表
- 基本操作的词法分析
- 操作符的词法分析
- 括号的词法分析
- 整数的词法分析
- 浮点数的词法分析
- 标识符的词法分析
- 基本操作的解析
- 整数的解析,浮点数和标识符
- 加法操作
- 减法操作
- 乘法操作
- 除法操作
- 高级操作的解析
- 括号的解析
- 数学优先级
- 左优先级
- 右优先级
- 括号支持
- 赋值
- 结合性支持
- 左结合性
- 右结合性
- 应用REPL
- 添加REPL
- 基本REPL
- 彩色消息
- 彩色提示
- 添加颜色
- 添加REPL
- 解释器
- 基本操作解释器
- 高级操作解释器
- 标识符(变量)解释器
- 内置
- pi
- e
- 配置
- 配置颜色
- 配置提示
- 添加更多操作
- 指数
- 添加对函数的支持
- exp
- ln
- 以a为底的对数
- cos/sin/tan
- cosh/sinh/tanh
- atan/acos/asin
- 添加逻辑
- 添加基本真/假
- 添加二元运算符
- 或 (&&)
- 与 (||)
-
>=
-
>
-
<=
-
<
-
==
- 添加一元运算符
- 非 (!)
- 向量计算
- 将向量添加到数据类型
- Lex向量
- 解析向量
- 添加向量操作
- 点积
- 向量范数
- 向量加法
- 矩阵计算
- 将矩阵添加到数据类型
- Lex矩阵
- 解析矩阵
- 添加矩阵操作
- 矩阵加法
- 矩阵乘法
- 计算矩阵行列式
- 计算矩阵逆
- 与配置交互
- 打印当前配置
- 将配置重置为默认值
- [X] 设置配置
- 设置主要颜色
- 设置提示颜色
- [X] 设置提示
- 设置问候消息
- [X] 设置问候颜色
- [X] 重新加载配置
进化
绘图
绘图函数(既包括stdlib,也包括运行时)将是有用且受欢迎的。绘图由gnuplot提供支持,将在类Unix(MacOS,Linux)上工作,但我对Windows没有任何想法。
-
绘制stdlib函数
-
[X] 绘制运行时函数
-
将绘图保存为png/svg/pdf
-
添加终端绘图
- 计算绘图的高度和宽度
- 计算单独的点
- 生成每一行
- 打印每一行
-
在termplot中自动设置x轴的级别
-
在termplot中自动设置y轴的级别
绘图示例
您可以绘制calc的标准库中定义的函数或用户定义的函数,要显示帮助,请输入 plot()
然后您可以绘制,例如
使用默认值绘制cos(从0到3pi,步长为0.01pi)
使用自定义值绘制sin(从-pi到pi,步长为0.01弧度,带有线条、标题、x标签、y标签)
定义f(x) = x²并使用自定义值绘制它(从-10到10,步长为0.1,带有线条点和)
终端绘图示例
您可以在终端中绘制,例如
它也支持标签
现在它在y轴上自动缩放!
精确数学计算器
由于本项目提供了一个带有解析器的用户界面,我们可以在后端插入一个精确数学引擎,将calc转换成一个真正的精确数学计算器。精确数学引擎的待办事项列表
- 有理数计算
- 实现有理数运算
- 有理数约简
- 文字计算
- 计算未初始化运算符的文字表达式
- 文字约简
- 无理数计算
- 实现无理数运算
- 无理数约简
有理数计算示例
截至2.11.0,已实现有理数精确数学支持
截至2.11.1,它可以在矩阵中工作!
截至2.11.4,浮点数将自动有理化(精度为10位小数)
CAS
如果我们走到这一步,是的,我会从描述中删除“极简”这个词
- 很难。
示例
只有Lexing的REPL(详细模式:默认开启)
具有Lexing和基本操作解析的REPL(详细模式:默认开启)
REPL和功能解释器(详细模式:默认关闭)
配置
您可以从文件中配置通用颜色、问候消息、问候颜色、提示和提示颜色,例如在(Linux)中
~/.config/mini-calc/mini-calc.toml
或者位于您的操作系统配置文件夹中。
您可以使用命令行与配置交互,更多详细信息请参阅网页
配置看起来是什么样子
默认配置看起来是这样的
颜色
可用的颜色有
- 紫色
- 青色
- 蓝色
- 黑色
- 红色
- 黄色
- 绿色
- 白色
- 十六进制颜色(例如:"#f7a8d8")
默认颜色(如果配置加载失败)是青色。
修改后的配置示例
配置
看起来是这样的
功能
以下功能可用
- sin
- cos
- tan
- sinh
- cosh
- tanh
- asin
- acos
- atan
- exp
- ln(别名:log)
- sqrt
- factorial(别名:fact)
- abs
- ceil
- floor
- round
三角学
对于三角学,输入值默认以弧度为单位,如果不是,则必须在第二个参数中输入"false"或"true",下面有示例
Exp/ln
如果您使用exp函数,可以传递第二个参数指定您正在使用的基数,如果没有传递第二个参数,则默认为自然对数底数
根号
您可以使用sqrt函数来取n次方根,默认情况下取平方根。
四舍五入
您可以使用round函数将结果四舍五入到n位小数,默认情况下四舍五入到整数(floor)
向量化
现在函数已经向量化了!只需传递一个向量作为参数即可!
逻辑
您现在可以使用逻辑!我实现了以下函数
- or(别名:||)
- and(别名:&&)
- geq(别名:>=)
- gt(别名:>)
- leq(别名:<=)
- lt(别名:<)
- eq(别名:==)
示例
用户定义的函数!
您可以定义自己的函数!
向量计算!
您可以使用向量!
- 将向量相加
- 添加了
norm
函数来计算范数 - 两个向量的点积(*运算符)
添加的函数
- norm
矩阵!
从2.7.0版本开始,实现了矩阵代数(使用lup约简)
- 您可以添加矩阵
- 相乘的兼容矩阵
添加的函数
- 转置
- 求逆
- det
从2.11.3版本开始,矩阵将被格式化打印!
非交互式使用
从2.12.0版本开始,增加了非交互式使用
依赖关系
~6.5MB
~151K SLoC