首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Mathjs中定义Infix运算符

在Mathjs中定义Infix运算符
EN

Stack Overflow用户
提问于 2016-03-27 18:23:47
回答 1查看 453关注 0票数 4

我希望能够使用mathjs math.parser()函数结果编写类似J的语言。

假设我想定义一个操作符#,它返回数组的长度。理想情况下,它的工作方式如下:

代码语言:javascript
运行
复制
a = [1, 2, 3]
#a             // yields 3

然后,为了好玩,一个操作符$,它接受两个数组并组合它们。

代码语言:javascript
运行
复制
a = [1, 2, 3, 4]
b = [4, 5, 6]
a $ b            // yields [1, 2, 3, 4, 4, 5, 6]

我怎么才能用数学做这些事?如果我做不到,我可以用什么工具来代替呢?

为什么不一样

我想像这样使用它:

代码语言:javascript
运行
复制
var parser = math.parser();
parser.eval("a = [1,2,3]; #a");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 08:33:21

math.js的表达式解析器不支持添加自定义操作符,因此您必须克隆项目并为此调整解析器的代码:

https://github.com/josdejong/mathjs/blob/master/src/expression/parse.js

注意,现在#字符被用作解析器中注释的开始。

如果您想为自己的特定语法创建自己的解析器,可以使用像杰森钉钉这样的解析器生成器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36250954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档