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]表達式()一起,它們應該允許使用者更輕鬆地在 JSL 中編寫程式碼。
例如
評估表達式 ( 保護 (.... 表達式 (要評估的表達式)...)...)
從某種意義上來說
評估表達式(保護( .... 它在這裡(expression to evaluate) ...) ...)
為什麼這個想法很重要?
表達式()的雙重使用是有害的,並且會使程式碼變得脆弱和複雜。
對這兩個含義使用不同的名稱將解決該問題。
其他願望
自動化和腳本回覆: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 />