问题标签 [expression-evaluation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - 开始编写逻辑表达式求值器
我想开发一个逻辑表达式评估器来计算某些逻辑表达式对特定表达式的适用性。例如,
表达式可以是以下形式
(A AND B) NOT C
然后应该用另一个表达式来评估这个表达式
(B AND C) OR D
上述情况下的评估结果为 FALSE,因为第二个表达式没有填满第一个。
表达式也可以更复杂,例如它可以具有数值范围 R(1-100),这意味着表达式的适用性在范围内有效,例如正则表达式中的 [A-Za-z0-9]。
所以表达式可以很复杂
(A AND B) OR C AND R(1-100) NOT R(80-100)
然后必须通过类似的表达式对其进行评估
(C OR D) AND B NOT R(1-7) AND R(25-100)
关于一个表达式何时满足另一个表达式有明确的规则。因此,如果必须编写表达式评估器,最好的方法是什么。因为,我以前没有做过任何事情,所以我想抢先一步。任何相关的指针或类似的实现都可能有很大的帮助。
haskell - Haskell 中的语句评估器跟踪
我正在尝试编写一个程序,该程序接受任何通用语句,对其进行评估,并在评估时显示每个步骤。
例如,如果我们有一系列赋值语句,它应该运行为:
评估作业声明 1
显示评估结果1
评估赋值语句 2
显示评估结果 2
现在,它只显示最终结果。代码是
编辑:
其余使用的数据类型是:
有人可以帮忙吗?提前致谢!
string - Maple 中的全局与局部变量估值问题
出于某种原因,Maple 代码
生产
而(相同,但现在 abc 是一个 GLOBAL 变量)
产生(我想要的)
我需要做什么才能评估涉及局部变量的连接字符串?非常感谢您的帮助!:)
java - ++i+i++ 评估
由于这个帖子,混乱上升了。作者更新了帖子,结果一目了然。 结论:Java从左到右计算表达式
关闭!
由于表达式的评估是从右到左完成的,因此以下代码应存储5
在j
:
但是我得到6作为输出,这迫使我重新思考从右到左的评估思路。请在这里解释这个理论。
java - 求解字符串格式的方程
我有一个字符串格式的方程,如“45+5*4-6”,我必须用 Java 求解。
有没有办法解决字符串格式的方程?
java - 如何解析数学表达式
我想了解像 GeoGebra 这样的 Java 程序如何exp(z^2)
从文本框中读取数学表达式,然后对其进行评估。对于熟悉 MatLab 的人:如何在 Java 中实现函数句柄?
haskell - Haskell 中的表达式求值树
在今天的考试中,我被要求在 Haskell 中创建一个表达式评估树。通常答案很简单:
要评估它,您只需使用以下函数:
然而今天,我们得到了一个数据类型:
所以我假设创建我可以做的表达式树:
并使用相同的eval
功能。但是,我已经编写了该函数并将其加载到 GHCI 中,但它似乎不起作用。谁能解释为什么这不起作用?
delphi - Building and evaluating expressions using Delphi RTTI
I am faced with a task of allowing the user to define the expressions using the compiled classes with RTTI enabled. Let me put it in a simple way.
And i have a routine which will evaluate the animal with the supplied expression
The user expression is
(TAnimal.Weight * TAnimal.Height)/(TAnimal.Weight + TAnimal.Height)
Now, I can get the TAnimal using the RTTI Context and get the value of the animal's Height and Weight. However, how can i evaluate the expression what the user has supplied??
Is there any mechanism which i can use to prepare the user expression when my application starts and at runtime, just send the instance of animal to retrieve the value. The user is free to change the expression at anytime and the application has to evaluate the expression.
I am using Delphi XE3.
cuda - 表达式树:替代或替代评估方法
我什至不确定这是否适合提出这样的问题。
作为我的硕士论文的一部分,我正在做一些并行算法的事情。简单地说,我正在做的事情的一部分是并行评估数千个表达式树(表达式如sin(exp (x + y) * cos (z))
)。我现在正在做的是将这些表达式树转换为前缀/后缀表达式,并使用常规方法(堆栈、递归等)评估它们。这些是我们在数据结构和基础计算机科学课程中学到的基本知识。
我想知道是否还有其他东西可以用来代替表达式树来处理表达式。我知道编译器在解析阶段大量使用表达式树,所以我假设没有表达式树的替代品(否则有人会在编译器中使用它)。
此类表达式是否有任何替代评估方法(而不是堆栈和递归)。更“并行”友好的东西?用堆栈解析这样的表达式是顺序的,并且会在并行系统中产生瓶颈。(我的工作也可以接受异国/怪异/理论方法 - 如果有的话)
expression-evaluation - juel 表达式验证(与 Janino 相比)
调用所有 javax.el juel 专家:-)
我们想使用 JUEL 来评估纯 Java 上下文中的表达式。这些表达式通常是数学表达式,由用户通过 ui 提供。另一个方面是这些表达式是配置的一部分,并且仅在稍后作为另一个过程的一部分进行评估。此外,表达式中使用的变量值仅在稍后作为此过程的一部分可用。因此,我们希望在表达式创建时向用户提供基本验证,以便用户知道他的表达式在评估时不会失败。
我们之前使用过 Janino,但我们正在用 JUEL 替换它 - 它更快(并且我们有很多评估要达到低谷,吞吐量很重要等)。此外,JUEL 使用完全相同的表达式语法 - 即我们可以将它插入后端并且它是向后兼容的。(只需添加${..}
旧的 Janino 表达式。
但是,我们对 JUEL 有一个问题 - 有什么方法可以在评估正在使用的表达式之前对其进行验证?
即这样的东西:
执行println(result)
然后正确打印出 3。
使用 Janino,我可以编写表达式 a+b,如果它格式错误或返回不正确的返回类型(即不是双精度),我会得到一个异常。然后我可以使用它来即时验证用户输入,并强制用户在保存配置之前纠正任何错误。
有什么办法可以用 JUEL 做到这一点?或者有人知道另一种方法吗?
谢谢,
卢卡斯