2 fonctions pour les 2 significations de expr()☑ nouvelle fonctionnalité intéressante
☑ pourrait aider de nombreux utilisateurs ! ( « personne » n'utilise la gestion des expressions ? - peut-être... pourquoi ?)
☑ supprime quelque chose qui ressemble à un « bug »
☐ agréable à avoir
☐ personne n'en a besoin
#monTop10_2025
Qu'est-ce qui a inspiré cette demande de liste de souhaits ?
En JSL, Expr() est utilisé à 2 fins :
- "c'est ici()" à l'intérieur de Évaluer l'expression()
- Je te protège() - pour protéger le contenu de toute évaluation
Malheureusement, Évaluer l'expression() se contente du premier Expr() et l'évalue.
Cela restreint la flexibilité avec laquelle les utilisateurs peuvent écrire des expressions imbriquées - voir :
Quelle est l’amélioration que vous aimeriez voir ?
Ajoutez 2 nouvelles fonctions à JMP pour les 2 significations de Expr() :
- "c'est ici() *) " à l'intérieur de Évaluer l'expression()
- Je te protège() *) - pour protéger le contenu de toute évaluation
*) veuillez utiliser les commentaires pour suggérer des noms de fonctions optimisés ?
- le plus court possible
- aussi "révélateur" que possible [Name Expr() est le nom idéal pour Name Expr() - pour les germanophones ...]
Avec l'[hérité] Expr() , ils devraient permettre à l'utilisateur d'écrire du code beaucoup plus facilement en JSL.
par exemple
Évaluer l'expression ( protéger ( .... Expr (expression à évaluer) ...) ...)
dans le sens de
Évaluer l'expression(protéger( .... c'est ici(expression to evaluate) ...) ...)
Pourquoi cette idée est-elle importante ?
le double usage de Expr() est néfaste et rend le code fragile et compliqué.
L'utilisation de noms distincts pour les 2 significations résoudra le problème.
autres souhaits de 
Automatisation et scriptsRe : 2 fonctions pour les 2 significations de expr() - Statut modifié : ReçuMerci d'avoir soumis cette demande !
Re: 2 fonctions pour les 2 significations de expr()@EvanMcCorkle
Re: 2 fonctions pour les 2 significations de expr()Je ne sais toujours pas comment appeler Expr et Expr² - et si Eval Expr() a également besoin d'un double... pour correspondre au double de Expr².
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: 2 fonctions pour les 2 significations de expr()Eval(Eval XXX( Protect( Do Something With( XXX(my_expr) ) )))
Eval(Eval That( Protect( Do Something With( That(my_expr) ) )))
Ce serait parfait, n'est-ce pas ? - mais il est déjà utilisé dans le contexte des classes.
Re: 2 fonctions pour les 2 significations de expr()Eval(Eval Name( Protect( Do Something With( Name(my_expr) ) )))
(c) @drewfoglia
2 victoires :
-> Cette approche pourrait également résoudre le problème avec Name() !
Re: 2 fonctions pour les 2 significations de expr()Pour en constater les avantages :
Pour remplacer le « décalage » dans cette fonction par une valeur prédéfinie :
f= function({y},
Expr(a + b);
Expr(y + offset))
Avec cette nouvelle approche, on peut écrire :
Expr( y + That( offset ) ) ) ) )offset=5;<BR />Eval(
Eval That( f = Function( {y},<BR /><CODE class="language-jsl"> Expr(a + b);<BR />
Avec l'approche actuelle, il faut générer des constructions créatives comme celle ci-dessous, ou utiliser d'autres astuces :
Expr(Eval Expr( y + Expr( offset ) ) ) )) )Eval(
Eval Expr( f = Function( {},<BR /><CODE class="language-jsl"> Expr(Expr(a + b);<BR />