包含表达式☐ 很酷的新功能
☐ 可以帮助很多用户!
☐ 删除感觉像“错误”的东西
☑ 很高兴有
☐ 没人需要它
是什么启发了这个愿望清单请求?
要检查某个字符串是否是某个更大字符串的一部分 - 并获取确切位置 - 可以使用contains() 。
要检查某个项目是否在列表中 - 并获取确切位置 - 可以使用contains() 。
检查表达式是否出现在长表达式中
... JMP/JSL 中没有函数。也没有获取位置的函数。
这很令人惊讶。因为有这么酷
Substitute(Expr(...), Exr(replace), Expr(with))
它需要找出一个表达式是否可以在主表达式中找到——以及它在哪里。
您希望看到什么改进?
请提供一个 JSL 函数来检查表达式是否出现在长表达式中 - 并获取位置:
例如,如果它是主表达式中第一个参数的第三个参数的第 5 个参数,则该函数可以返回 {{1,3,5}}。
如果它在多个地方找到该表达式,它可能会返回所有不同的匹配。
如果它找到了表达式 - 但无法准确定位它 [因为它只是参数的一部分],它可能会返回 1。
如果表达式缺失,它可能会返回缺失。
这个想法为什么重要?
Contains(Expr(...), Expr(search))将促进 JSL 脚本编写。
它与另一个新功能略有关联, :folded_hands: 表达式索引:读写访问
其他愿望
自动化和脚本回复:包含表达式似乎有效:
ContainsExpr=Function ({expression, pattern},
tmp = Substitute(Name Expr(expression), Name Expr(pattern), Expr(.));
not(Name Expr(tmp)==Name Expr(expression))
);
myExpression = Expr({a+b/(x-y),3} );
ContainsExpr( Name Expr(myExpression), Expr(X));
ContainsExpr( Name Expr(myExpression), Expr(c));
ContainsExpr( Name Expr(myExpression), Expr(3));回复:包含表达式或者通过Extract Expr进行:
ContainsExpr=Function ({expression, pattern},
Not(is empty(Extract Expr(expression, pattern)));
);
myExpression = Expr({a+b/(x-y),3} );
ContainsExpr( Name Expr(myExpression), Expr(X));
ContainsExpr( Name Expr(myExpression), Expr(c));
ContainsExpr( Name Expr(myExpression), Expr(3));Too bad there is no setting for custom functions to NOT evaluate the argument, but just look it up - a magic 提取表达式is capable of.
Without this possibility, maybe it's better to learn the Not(is empty(Extract Expr(
... instead of EVERY time having to wrap the arguments with Expr() to save them from getting evaluated.
回复:包含表达式@莎拉-西尔维斯特 .
-> 希望可以关闭。
回复:包含表达式 - 状态更改为:已存档