subst() - 대체() 2.0☐ 멋진 새로운 기능
☐ 많은 사용자에게 도움이 될 수 있습니다!
☑ "버그"처럼 느껴지는 것을 제거합니다.
☑ 있으면 좋다
☐ 아무도 필요하지 않아요
이러한 위시리스트 요청을 하게 된 계기는 무엇이었나요?
Substitute는 표현식 처리를 위한 매우 강력한 기능입니다.
JSL을 사용하여 효율적이고 견고한 애플리케이션 개발(EU 2018 415)
Substitute 의 가장 큰 단점: 인수를 평가한다는 점입니다.
따라서 Substitute()를 사용한 표현식은 매우 길고 읽기 어렵습니다. 게다가, 새로운 JSL 스크립터는 올바른 구문을 배워야 합니다. 아무도 모든 Expr()이 필요하다고 생각하지 않습니다.
예:
Substitute( Expr( a + Sqrt( a ) ), Expr( a ), Expr( b ) )
어떤 개선을 원하시나요?
인수를 평가하지 않는 새로운 함수 subst() . 그러면 다음과 같이 쓸 수 있습니다.
Substitute( a + Sqrt( a ), a, b )
왜 이 아이디어가 중요한가요?
Subst() 와 Eval(Subst())는 수백만 번 사용될 것이고, 그때마다 JSL 스크립터는 여러분이 이를 구현했다는 사실에 기뻐할 것입니다!
다른 소원 
자동화 및 스크립팅답변: subst() - 대체() 2.0대부분의 경우 사용자는 JMP가 이름을 조회하고 이름 자체 대신 Name Expr을 사용한다는 생각으로 인수 중 하나 이상을 이름으로 제공합니다.
따라서 JMP는 다음과 같이 작성할 수 있는 수준으로 인수를 평가해야 합니다(조회하고, 가능한 경우 Name Expr을 사용하고, 더 이상 평가하지 않음).
a=Expr(myExpr);
Subst(x+y, x, a) // result: myExpr + y
</CODE>instead of </P><PRE><CODE class=" language-jsl">a=Expr(myExpr);
Substitute(Expr(x+y), Expr(x), Name Expr(a)) // result: myExpr + y
.
그리고 사용자가 JMP가 ( Name Expr을 확인하지 않고) 인수를 있는 그대로 사용하는지 확인하고 싶다면 다음과 같이 작성할 수 있습니다.
a=Expr(myExpr);
Subst(x+y, x, Expr(a)) // result: a + y
답변: subst() - 대체() 2.0다른 말로 하면:
대체()
... Extract Expr() 의 마법/간편함을 갖춘 Substitute()
clear symbols();
// direct mode, no Expr necessary
Extract Expr(x + y, x);// -> x
Extract Expr(x^2 + y, c);// no c in x^2 + y -> empty
// Name Expr mode
c=Expr(x^2);
Extract Expr(x^2 + y , c);// looks up c = x^2, find "x^2"" in x^2 +y
불행하게도 작동하지 않는 것(원하는 만큼 쉽게):
c=Expr(x^2);
Extract Expr(c * d, Expr(c))
Expr 추출
Re: subst() - substitute() 2.0 - 상태가 다음으로 변경됨: 승인됨@hogi 님 , 제안해 주셔서 감사합니다.