expr() の 2 つの意味に対応する 2 つの関数☑ クールな新機能
☑ 多くのユーザーに役立つ可能性があります。( 「誰も」式処理を使用していないのでしょうか? - おそらく... なぜでしょうか?)
☑ 「バグ」のように感じられるものを取り除く
☐ あれば便利
☐ 誰も必要としない
#私のトップ10_2025
このウィッシュリストのリクエストのきっかけは何ですか?
JSL では、 式()は次の 2 つの目的で使用されます。
- 式の評価()内の"it is here() "
-あなたを守ります() - コンテンツが評価されないように保護します
Unfortunately, 式の評価() is happy with the first 式() and evaluates it.
これにより、ユーザーがネストされた式を記述できる柔軟性が制限されます。次を参照してください。
どのような改善を望みますか?
Expr() の 2 つの意味に対応する 2 つの新しい関数を JMP に追加します。
- 「ここにあります() *)」 inside of 式の評価()
- 私はあなたを守ります() *) - to protect the content from being evaluated
*) コメントを使用して最適化された関数名を提案してください。
- できるだけ短く
- できるだけ「わかりやすく」 [Name Expr() は、ドイツ語話者にとって Name Expr() の理想的な名前です...]
これらを [legacy]式()と組み合わせることで、ユーザーは JSL でより簡単にコードを記述できるようになります。
例えば
式の評価 ( 守る ( .... 式 (評価する式) ...) ...)
という意味で
式の評価(守る( .... ここにあります(expression to evaluate) ...) ...)
このアイデアはなぜ重要なのでしょうか?
式()の二重使用は有害であり、コードを脆弱かつ複雑にします。
2 つの意味に別々の名前を使用すると、問題は解決します。
その他の希望
自動化とスクリプトRe: expr() の 2 つの意味に対応する 2 つの関数 - ステータスが「確認済み」に変更されましたこのリクエストを送信していただきありがとうございます。
Re: expr() の 2 つの意味に対応する 2 つの関数エヴァン・マコークル
Re: expr() の 2 つの意味に対応する 2 つの関数Expr と Expr² をどのように呼び出すのか、また、Expr² の double に適合させるために Eval 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) ) )))
Re: expr() の 2 つの意味に対応する 2 つの関数Eval(Eval XXX( Protect( Do Something With( XXX(my_expr) ) )))
Eval(Eval That( Protect( Do Something With( That(my_expr) ) )))
これ()は完璧ですよね? - しかし、これはすでにクラスのコンテキストで使用されています。
Re: expr() の 2 つの意味に対応する 2 つの関数Eval(Eval Name( Protect( Do Something With( Name(my_expr) ) )))
(c) @drewfoglia
2倍の勝利:
-> このアプローチにより、 Name()の問題も解決される可能性があります。
re: expr() の 2 つの意味に対応する 2 つの関数メリットを実感するには:
この関数内の「オフセット」を定義済みの値に置き換えるには:
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 />