expr() 的两种含义对应两种函数☑ 很酷的新功能
☑ 可以帮助很多用户!( “没有人”使用表达式处理?——也许吧……为什么?)
☑ 删除一些感觉像“bug”的东西
☐ 很高兴有
☐ 没人需要它
#我的Top10_2025
是什么启发了这份愿望清单请求?
在 JSL 中, 表达式()有两个用途:
- 评估表达式()中的“它在这里()”
-我保护你() - 保护内容不被评估
Unfortunately, 评估表达式() is happy with the first 表达式() and evaluates it.
这限制了用户编写嵌套表达式的灵活性 - 请参阅:
您希望看到什么改进?
针对Expr() 的 2 个含义,向 JMP 添加 2 个新函数:
-评估表达式()中的“it is here() *)”
-我保护你() *) - 保护内容不被评估
*) 请使用评论来建议优化的函数名称?
- 尽可能短
- 尽可能“讲述” [Name Expr() 是 Name Expr() 的理想名称 - 对于德语使用者来说...]
与 [legacy] Expression()一起,它们应该允许用户更轻松地在 JSL 中编写代码。
例如
评估表达式 ( 保护 (.... 表达式 (要评估的表达式)...)...)
从某种意义上来说
评估表达式(保护( .... 它在这里(expression to evaluate) ...) ...)
为什么这个想法很重要?
Expression()的双重用途是有害的,并且会使代码变得脆弱和复杂。
对这两个含义使用不同的名称将解决该问题。
其他愿望
自动化和脚本回复:expr() 的两个含义对应的两个函数 - 状态更改为:已确认感谢您提交此请求!
回复:expr() 的两种含义对应两个函数@EvanMcCorkle
回复:expr() 的两种含义对应两个函数我仍然不确定如何调用 Expr 和 Expr² - 以及 Eval Expr() 是否也需要一个 double 类型的值……以适应 Expr² 的 double 类型。
Eval(Eval Expr( Quote( Do Something With( This(my_expr) ) )))
Eval(Eval Expr( Protect( Do Something With( Inject(my_expr) ) )))
Eval(Eat Honeypot( Protect( Do Something With( Honeypot(my_expr) ) )))
回复:expr() 的两种含义对应两个函数Eval(Eval XXX( Protect( Do Something With( XXX(my_expr) ) )))
Eval(Eval That( Protect( Do Something With( That(my_expr) ) )))
this()就完美了,对吧?——但它已经在类的上下文中使用了。
回复:expr() 的两种含义对应两个函数Eval(Eval Name( Protect( Do Something With( Name(my_expr) ) )))
(c) @drewfoglia
2倍胜率:
-> 这种方法也可以解决Name()的问题!
回复:expr() 的两种含义对应两个函数要了解其益处:
要将此函数中的“偏移量”替换为预定义值:
f= function({y},
Expr(a + b);
Expr(y + offset))
采用这种新方法,可以这样写:
Expr( y + That( offset ) ) ) ) )offset=5;<BR />Eval(
Eval That( f = Function( {y},<BR /><CODE class="language-jsl"> Expr(a + b);<BR />
按照目前的方法,人们必须创造出类似下面这样的创造性结构——或者使用一些其他技巧:
Expr(Eval Expr( y + Expr( offset ) ) ) )) )Eval(
Eval Expr( f = Function( {},<BR /><CODE class="language-jsl"> Expr(Expr(a + b);<BR />