我希望能够使用mathjs math.parser()
函数结果编写类似J的语言。
假设我想定义一个操作符#
,它返回数组的长度。理想情况下,它的工作方式如下:
a = [1, 2, 3]
#a // yields 3
然后,为了好玩,一个操作符$
,它接受两个数组并组合它们。
a = [1, 2, 3, 4]
b = [4, 5, 6]
a $ b // yields [1, 2, 3, 4, 4, 5, 6]
我怎么才能用数学做这些事?如果我做不到,我可以用什么工具来代替呢?
为什么不一样
我想像这样使用它:
var parser = math.parser();
parser.eval("a = [1,2,3]; #a");
发布于 2016-04-01 08:33:21
math.js的表达式解析器不支持添加自定义操作符,因此您必须克隆项目并为此调整解析器的代码:
https://github.com/josdejong/mathjs/blob/master/src/expression/parse.js
注意,现在#
字符被用作解析器中注释的开始。
如果您想为自己的特定语法创建自己的解析器,可以使用像杰森或钉钉这样的解析器生成器。
https://stackoverflow.com/questions/36250954
复制相似问题