☑ 멋진 새로운 기능
☑ 많은 사용자에게 도움이 될 수 있습니다!
☑ "버그"처럼 느껴지는 것을 제거합니다.
☐ 있으면 좋다
☐ 아무도 필요하지 않아요
#myTop10_2024
짧은:
JSL 편집기에서 어떤 함수가 인수를 평가하고 어떤 함수가 평가하지 않는지 보여주세요!
긴:
이러한 위시리스트 요청을 하게 된 계기는 무엇이었나요?
JSL에는 매우 강력한 동작이 있는데, 반면에 새로운 사용자가 걸림돌 없이 시작하는 것을 어렵게 만듭니다.
일부 함수는 인수를 평가하고 다른 함수는 평가하지 않습니다.
이것은 표현식 처리에 사용되는 함수에 매우 중요합니다.
@joseph_morgan 이 쓴 훌륭한 강의가 있습니다: JSL을 사용하여 효율적이고 견고한 애플리케이션 개발(EU 2018 415)에서는 JSL과 JSL의 차이점, 차이점을 활용하는 방법, JSL을 사용하여 효율적이고 견고한 애플리케이션을 개발하는 방법에 대해 설명합니다.
... 그 당시의 상태를 설명하면 다음과 같다: Jmp 14 [2018]:
이런 내용은 설명서에 없습니다.
이는 제가 표현식 처리 함수의 동작을 역공학하여 알아낸 것입니다.
믿으세요. [ ] 이 함수에 대해 생각하지 않으면 결코 올바르게 수행할 수 없습니다.
여기에 나열된 표현식 처리 함수 외에도 모든 함수에 동일한 내용이 적용됩니다.
만약 당신이 이 함수들에 대해 생각하지 않는다면 당신은 결코 올바르게 할 수 없을 것입니다:
not 함수 호출 전에 인수가 평가되는지 아는 것은 매우 중요합니다.
이 코드는 작동하는가 아닌가?!?
dt = Expr(current data table());
myscript = Expr(get script());
dt << myscript
불행히도 JSL 스크립터의 경우 함수가 어떻게 동작하는지에 대한 힌트가 없습니다. 즉, 인수를 평가하는지 여부입니다.
아마도 그것은 단지 인수 중 하나를 평가하는 것일 수도? 누가 알겠는가?
사용자는 알아야 합니다!
... 또는: 해당 기능의 동작을 역공학합니다.
어떤 개선을 원하시나요?
함수가 인수를 평가하는 다양한 방법(또는 평가하지 않는 방법)을 나타내기 위해 구문 강조 표시를 구현해 주세요.
추가 기능: 스크립팅 인덱스에도 차이점을 표시해 주세요.

JSL 편집기에서 강조 표시는 키보드 단축키를 통해 활성화/비활성화될 수 있습니다.
Expr(_x_^2)는 다음과 같은 딜레마를 보여줍니다.
Expr()의 인수는 평가되지 않습니다. 하지만 ^의 두 인수는 평가됩니다.
아마도 강조 표시는 마우스나 커서의 위치에 따라 반응하는 것 같습니다. 즉, 현재 마우스/커서가 위치한 지점 아래의 인수만 강조 표시되는 것입니다.
왜 이 아이디어가 중요한가요?
새로운 구문 강조 기능을 사용하면 JMP에서 사용자가 자동으로 올바른 코드를 생성할 수 있습니다.
사용자는 오류 메시지를 받거나 잘못된 결과를 보기 위해 코드를 실행할 필요가 없습니다.
... 또는 @JosephMorgan 이 논문을 준비하기 위해 했던 것처럼 함수를 역공학하는 것 입니다.
다른 소원 
그 사이인가 보다
1) 인수가 평가됩니다.
2) 인수가 평가되지 않습니다.
세 번째 변형이 있습니다.
1b) 인수는 "한 번" 평가됩니다.
이런 식으로 동작하는 함수:
- 머리
- Recode Column(첫 번째 인수 및 Target Column() 인수의 인수)
- ...?
따라서 세 번째 색상이 필요합니다.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Name Expr(As Column("name"));
Head(As Column("name"));
Head(col);
dt << Recode Column(AsColumn("name"),{1},Target Column(col));Head는 주장을 평가합니까?
https://community.jmp.com/t5/Discussions/Begin-Data-Update/mp/753037/highlight/true#M93483
음, 고급 구문 강조 기능으로는 해결되지 않는 문제가 아직 몇 가지 있습니다...
예를 들어
from the printed "2" one can see that JMP actually evaluates the argument of the Set File List setting - 3 times !?!
... but at the end, it complains about the "print" ?!?
... and without the print it won't do anything, neither complain nor open the file from 파일 목록.
folder= "$SAMPLE_DATA/../Import Data/";
file= "Animals.txt";
filelist= Eval List({folder||file});
Multiple File Import(
<<SET folder=""></SET><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1720645070503.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_0-1720645070503.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_0-1720645070503.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_0-1720645070503.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66063i6C7744FFCF743C3B/hogi_0-1720645070503.png" role="button" title="hogi_0-1720645070503.png" alt="hogi_0-1720645070503.png" /></span></SPAN></SPAN></SPAN>
<STRONG>TS-00152969:</STRONG>
<EM>저는 개발팀과 이 문제에 대해 이야기했습니다. 이 문제는 결함이며, 저는 개발팀에 보고하여 향후 JMP 버전에서 해결될 수 있도록 했습니다.<BR /><BR /> 감사합니다 -> JMP19EA5에서 수정되었습니다</EM>