在Mathjs中定义中缀运算符

4

我希望能够使用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]

我该如何使用mathjs实现这些功能?如果无法实现,我应该使用什么工具?

与众不同之处

我希望能够像这样使用它:

var parser = math.parser();
parser.eval("a = [1,2,3]; #a");

可能是如何扩展JavaScript语言以支持新运算符?的重复问题。 - Downgoat
1
@Vihan 这有点相关,但我特别想在 parser#eval 方法中使用它们。 - Conor O'Brien
1个回答

4

好的,谢谢!我会接受,但是我还会保留悬赏直到以后。 - Conor O'Brien
我刚刚意识到你制作/维护mathjs o_O,谢谢向我展示peg和jison,它们是手头工作的完美工具。 - Conor O'Brien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接