根据模式

时间:2017-07-01 16:43:12

标签: java list groovy collections jvm

我正在尝试使用嵌套列表表示数学表达式,然后使用模式使用数学标识来转换它们。例如,我希望能够做这样的事情(伪代码):

x(y+z)

格式的['mul', 'x', ['add', 'y', 'z']]开头

的形式申请身份a(b+c) = ab+ac
['mul', '*1', ['add', '*2', '*3']] -> ['add', ['mul', '*1', '*2'], 
['mul', '*1', '*3']]

xy+xz

的形式结束['add', ['mul', 'x', 'y'], ['mul', 'x', 'z']]

在这个例子中,这很容易,但是我希望能够将任意复杂的模式应用于嵌套列表,并允许'* n'表示的占位符能够成为任意复杂的嵌套列表。< / p>

有没有人知道一种支持这种本地化的编程语言。我选择的武器是Groovy,我已经想出如何在Groovy中做到这一点,但我还没有广泛测试它,我想知道是否有任何其他语言内置支持这样的东西。我听说Scala有一个特别强大的集合库,所以它可能会做这样的事情吗? JVM语言是我的首选。

0 个答案:

没有答案