#expression-evaluator #evaluator #polish #expression #reverse

已删除 polishexpr

一个波兰逆表达式求值器的糟糕实现

2 个版本

0.1.4 2023年12月10日
0.1.2 2023年12月9日
0.1.1 2023年12月9日
0.1.0 2023年12月9日

#24 in #expression-evaluator

每月 27 次下载

MIT 许可证

10KB
166 代码行

polishexpr

一个糟糕实现的波兰逆表达式求值器。

支持的功能列表如下

  • 算术函数: +, -, *, /
  • sin: 正弦
  • cos: 余弦
  • ln: 自然对数
  • exp: 指数
  • sqrt: 平方根

这些函数的参数可以是通常的常量,写成数字,也可以是变量,写成 $var_number ($0, 例如)。变量数字是变量向量的基于0的索引。

用法

  • 求和 2+2 等于 4
let pe = PolishEvaluator::new("$0 2 +", &[2.0]);
let result = pe.evaluate()?;
assert_eq!(4f64, result);
  • 计算 2 + 3 - 5
let pe = PolishEvaluator::new("$0 $1 + $3 -", &[2.0, 3.0, 5.0]);
let result = pe.evaluate()?;
assert_eq!(0f64, result);

lib.rs:

PolishEvaluator

波兰表达式求值器的糟糕实现

逆波兰表示法(RPN)表达式求值器。支持的功能列表如下

  • 算术函数: +, -, *, /
  • sin: 正弦
  • cos: 余弦
  • ln: 自然对数
  • exp: 指数
  • sqrt: 平方根

这些函数的参数可以是通常的常量,写成数字,也可以是变量,写成 $var_number ($0, 例如)。变量数字是变量向量的基于0的索引。

示例

use polishexpr::PolishEvaluator;

let pe = PolishEvaluator::new("$0 $1 +", &[2.0, 2.0]);
let result = pe.evaluate().expect("get the sum result");
assert_eq!(4.0, result);

无运行时依赖项