问题标签 [evaluator]
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.
configuration - 在 Alfresco evaluator 中访问全局配置
我想知道在定义评估器时是否可以访问全局配置变量?
即我在全局配置中定义了一个GROUP 的标题。评估者应读取该组的值并根据该组呈现操作。
我不想对组进行硬编码,我想保留在不重建模块的情况下更改它的可能性。
谁能告诉我天气可能吗?
非常感谢
java - 变量不能被测试访问
}
我认为我的转换后的属性应该是读写的,但是当我运行我的测试时,我得到了这个错误
clojure - 尝试调用未绑定的 fn,而我已经定义了它
我正在尝试将 SICP 的元循环评估器转换为 Clojure。在setup-environment
调用extend-environment
中无法编译,因为我收到错误“尝试调用未绑定的 fn”。以下是部分代码:
当我评估该extend-environment
方法时,我收到以下错误:
- 由 java.lang.IllegalStateException 引起
尝试调用未绑定的 fn:
#'scheme-evaluator/extend-environment
Var.java:43 clojure.lang.Var$Unbound/throwArity
AFn.java:40 clojure.lang.AFn/invoke
scheme- evaluator.clj: 277 方案评估器/eval7808
我认为我没有提供正确类型的参数,或者我没有创建正确类型的函数。我尝试了各种匿名方法的变体,并在括号中传递或不传递,但我无法编译它。
有谁知道这个错误的原因是什么,我该如何解决?
clojure - 在 Clojure 的元循环评估器中评估“真实”
我将元循环评估器的计算机程序结构和解释 (SICP)版本转换为 Clojure。主要区别(除了语法)是环境结构的处理。由于您不能在 Clojure 中使用set-car!
和set-cdr!
,因此这些是通过一个持有地图的原子来实现的(从GitHub 上 Greg Sexton 的第 4 章注释的代码复制而来)。
两个评估器的代码可以在这里找到:
主程序eval
进行案例分析,然后决定下一步如何处理exp
环境中的表达式env
:
与 Clojure 评估器交互时,您可以执行以下操作:
;;; 评估输入:
(defn hello-string hello)
;;; eval值:
<环境图>
;;; 评估输入:
你好字符串
;;; 评估值:
你好
这表明可以在环境中存储和检索新帧。
最初设置环境true
并false
显式添加时:
但是当输入 if 表达式时,代码会失败,因为它找不到“true”。(如果您只评估true
,也会发生同样的情况,在 Scheme 版本中评估为#t
)。
;;; 评估输入:(
如果为真 hello-string "hi")
CompilerException java.lang.Throwable: 未知表达式类型 "true" --
EVAL,编译:(/home/erooijak/clojure/scheme-interpreter/scheme-
evaluator.clj: 314:1)
(我希望这被评估为“你好”)
由于eval-if
在 Scheme 版本中可以正常工作(并且如果true
不false
添加到中则不起作用setup-environment
,因此它看起来eval
不会解释true
为需要在 Clojure 版本的环境中查找的内容。
不幸的是,我没有确切地看到这种查找在 Scheme 版本中是如何发生的,以及为什么它在 Clojure 版本中没有发生。
我希望有人能引导我朝着正确的方向前进,为什么要true
在 Scheme 中进行评估,而不是在元循环评估器的 Clojure 实现中。
android - ValueAnimator 无法正常工作。从 0 而不是从第一个值重新开始
这是我的代码:
这在调用活动时调用一次,在完成获取新数据的 Api 调用后调用一次。第一次它从 0 变为正确的值。第二次,它回到 0,从 0 开始,总是停在一个小于想要的数字的随机数上。我怎样才能让它不从 0 重新启动,并且在想要的 nr 处完成?
java - Java:堆栈表达式评估器:减法或乘法时出现空堆栈异常
这是一个有点牵强的问题。我正在编写一个 Lisp 评估器算法,该算法采用输入表达式,例如:
问题是:由于操作 (- 6) 和 (*),它会引发 EmptyStack 错误
当我将它写为 (- 0 6) 和 (* 1) 时,它会以正确的结果正确编译。我认为它正在寻找从某些东西中减去,并乘以某些东西(不能没有数字)。它与我的操作数评估的结构有关。我想在程序本身中实现这一点,而不必手动添加零进行减法和一个用于乘法。关于如何去做的任何想法?
我整天都在盯着它看,似乎无法弄清楚为什么我的推送/弹出结构会以这种方式起作用。我尝试使用正则表达式进行试验,但这似乎没有奏效。
程序结构:
1) 使用两个堆栈:Object 类型的expressionStack和 Double 类型的currentOperationStack。
2) evaluateCurrentOperation()方法评估当前操作:
从 expressionStack 中弹出操作数并将它们推送到 currentOperationStack 直到找到运算符。
在 currentOperationStack 的操作数上使用运算符。
将结果推送到表达式堆栈中。
3) evaluate()方法计算 inputExpression 中的当前 Lisp 表达式(使用扫描仪读取,并为操作数使用 case 语句)并返回结果。
自定义异常类:
java - Evaluator Expression:如何知道输入是否错误
我正在解决下一个技术问题(Q1):http: //blog.sdeskills.com/qotd-2016-oct-17-resistance-is-futile/
它几乎完成了,只有一项任务待处理。评估输入是否平衡。检查括号是否按顺序完成,但不评估标记。
在给定的子网络中不能混合串联/并联连接,因此 (500+200|300) 是不允许的。
这是我当前的代码:https ://repl.it/EC3i/2 关于如何将前面的表达式评估为错误的任何想法?
python - 如何重写/修改我当前的 Python 解释器的语法结构,对 Python 不太好?
这是我当前的 Python 解释器,它使用解析规则来获取输入,然后打印出表达式。解释器工作正常,但我想对我当前的语法规则进行某些更改并将其添加到新的语法规则中。到目前为止,我只能得到一些我想要的语法更改。
这是我想从我当前的语法中做出的改变:
另外我不确定如何在我的解释器中实现下面的新语法规则,我想我可能已经有了它们?
这是我当前语法的当前代码:
c# - 表达式编辑器/解析器/评估器
我正在尝试处理 C# 项目,我希望允许用户通过在编辑器中键入代码来动态运行代码。因此,考虑到这一点,我考虑编写某种脚本编辑器、解析器和评估器,但想先与其他人核实一下,以防我只是重新发明轮子?
所以,我的想法是/是...
- 编写一个语法高亮编辑器,我可以在其中编写代码,包括使用自定义关键字。
- 向编辑器添加逻辑,以便它能够根据编辑器中的文本格式化内容。
- 有一种“操作”已输入文本的方法。
例如,如果我输入以下...
...然后我希望能够动态运行该代码,就好像它是应用程序的一部分一样。
我希望所有这些都是有道理的。有什么想法吗?
racket - 自我评估球拍解释器
我一直在尝试编写一个可以自我评估的 Racket 解释器,但由于某种原因我无法让它工作。的代码interpreter.rkt
非常标准。来自的代码interpreter-test.rkt
可能是问题所在?我不确定。
interpreter.rkt
正确的 repl 打印#t
。然后,在另一个文件中:
interpreter-test.rkt
所以,我希望 repl 打印#t
两次——一个来自(require "interpreter.rkt")
粘贴的代码,一个来自粘贴的代码。相反,我从粘贴的代码中得到了一条#t
来自(require "interpreter.rkt")
和无用的错误消息:
我不知道问题是什么。它与引号的行为方式有关吗?任何指针将不胜感激。
更新:Oscar Lopez 建议我可能需要在整个程序中使用 mcons。但是,这违背了自我评估解释器的目的,因为我需要大量修改复制粘贴的代码。所以,我尝试改用 R5RS,因为它允许坐车!和设置-cdr!
interpreter-r5rs.rkt
interpreter-r5rs-test.rkt
但我仍然收到错误