JSL: if - else -> 쉼표를 찾으시겠습니까?안녕,
세미콜론 10개 중 1개가 쉼표이거나 if 블록에 속한 쉼표 하나가 실제로 누락되어 코드가 작동하지 않는 문제에 자주 직면합니다.
if-else 절의 블록을 더 눈에 띄게 만드는 쉬운 방법이 있습니까?
고급 통계 모델링소비자 및 시장 조사실험 설계신뢰성 분석Re: JSL: if - else -> 쉼표를 찾으시겠습니까?시원하고 매우 편리해요 
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?If() 문을 수식 편집기에 붙여넣으면 매우 빠르게 찾을 수 있습니다.

Re: JSL: if - else -> 쉼표를 찾으시겠습니까?아뇨. 다시 한 번 말씀드리지만, 코드를 복사하여 붙여넣고 다시 정렬하면 if 문의 어딘가에 잘못된 쉼표가 있는 것처럼 작동합니다.
- 그리고 난 그런 게 있었으면 좋겠어 하이라이트 기능 이미 Jmp17에 구현되어 있습니다 
흠 아직은...
그래서 게시물의 제안으로 돌아가서 도움을 검색했습니다.
제안을 읽는 동안 처음으로 나는 다음 문제가 생겼을 때 많은 사람들이 나를 도와줄 것이라고 생각했습니다.
이제 잘못 배치된 쉼표를 검색해 보니 실제로는 @txnelson '에스 제안 내가 그것을 찾는 데 도움이되었습니다.
클릭 재포맷 스크립트 들여쓰기가 예상한 것과 맞지 않는 부분을 확인하세요.
매우 간단하며 예상한 대로입니다.
반면에 잘못된 쉼표를 계속해서 검색하는 동안 다른 제안은 다음과 같습니다.
" 있어서는 안되는 곳에 쉼표가 있나요? 그걸 찾아서 고쳐야 해. ".
두 가지 접근 방식을 결합하여 코드를 작성하려면
1) 읽을 수 있는 방식으로
2) 그런 식으로 재포맷 스크립트 형식을 변경하지 않습니다.
하나는 넣을 수 있습니다 빈 줄 쉼표 앞에는 만약에 진술. 이렇게 하면 방지할 수 있습니다. 재포맷 스크립트 쉼표를 이전 줄의 끝으로 이동합니다.불행하게도 쉼표 뒤의 코드가 다음 줄로 이동하고 거기에 쉼표만 남겨두게 되므로 코드가 약간 "넓게 메쉬"되어 읽기가 어려워집니다. 흠.
Names Default To Here( 1 );
dt = Current Data Table();
If(
Is Empty( dt ),
Print( "no table found" );
,
N Rows( dt ) == 0,
Print( "table has no data" );
, // else
Print( "ok" )
);
직접 시도해 보세요: 잘못 배치된 쉼표는 어디에 있습니까?
에서 제공한 코드 불규칙한 공격 , 그러나 세미콜론이 있어야 하는 곳에 쉼표가 있습니다.
Names Default to Here( 1 );
dt = Current Data Table();
Try(
If( Contains( dt << Get Column Names, As Name( "height" ) ),
mean = Col Mean( dt:height );
max = Col Max( dt:height );
min = Col Min( dt:height );
std dev = Col Std Dev( dt:height ),
Write( "\!NSome stats on :HEIGHT:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Contains( dt << Get Column Names, As Name( "weight" ) ),
mean = Col Mean( dt:weight );
max = Col Max( dt:weight );
min = Col Min( dt:weight );
std dev = Col Std Dev( dt:weight );
Write( "\!NSome stats on :WEIGHT:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Contains( dt << Get Column Names, As Name( "age" ) ),
mean = Col Mean( dt:age );
max = Col Max( dt:age );
min = Col Min( dt:age );
std dev = Col Std Dev( dt:age );
Write( "\!NSome stats on :AGE:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Print( "Cannot find columns 'height', 'weight', or 'age'" )
)
,
Print( "mistakes were made" )
)
더보기... Re: JSL: if - else -> 쉼표를 찾으시겠습니까?안녕 @호기 ,
이는 귀하의 특정 질문에 대한 정확한 답변이 아닙니다. 하지만 저는 Visual Studio용 JSL 확장이 일반적으로 더 나은 스크립팅 경험을 제공한다고 생각합니다.
https://marketplace.visualstudio.com/items?itemName=VinceFaller.jmp-scripting
Re: JSL: if - else -> 쉼표를 찾으시나요?나는 동의한다 @jthi , 나는 재포맷을 사용하지 않습니다.명확한 스타일 가이드를 갖고 코드를 작성할 때 이를 적용하는 것이 프로그래머로서 나의 임무입니다.
다음과 같은 주석
, // else
코드 줄이 많을 때 시각적인 안내를 제공하는 데 도움이 될 수 있습니다.
나 역시 쉼표를 기본 if 문과 정렬하는 것이 바람직한 스타일이라고 생각합니다.
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?내가 아는 바로는 아니다. 현재 기본 설정 스크립트 편집기 페이지에서 몇 가지 변경 사항을 확인할 수 있습니다.
또한 사용자 정의 가능한 자동 포맷터를 작성하는 것은 가장 간단한 작업이 아니며(적어도 나는 그렇게 생각합니다) 그것이 좋은 생각인지조차 확신할 수 없습니다. 나는 독선적인 자동 포맷터가 완전히 사용자 정의 가능한 것보다 더 일반적이고 더 낫다고 생각합니다. 하지만 JSL에는 따라야 할 스타일 가이드가 없습니다. 흔한 자동 포맷터의 기반이 되는 의견입니다(JSL은 매우 작은 언어입니다).
다음은 Python용 검정색 자동 포맷터에 관한 비디오입니다. Łukasz Langa - 인생은 검은색으로 칠해지는 것이 더 좋습니다, 또는: 걱정을 멈추고 자동 서식을 수용하는 방법(youtube.com)
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?
@jthi 썼다:
[재포맷]을 올바르게 구성 중...
재포맷을 구성하는 방법이 있나요?
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?나는 약간 비슷한 스타일을 사용합니다 @ErraticAttack 하지만 조건을 와 같은 줄로 분리하고 다른 항목에 주석을 달고 블록이 긴 경우 이를 포착할 수도 있습니다.
Names Default To Here(1);
dt = Current Data Table();
Try(
If(Is Empty(dt),
print("no table found");
, N Rows(dt) == 0,
print("table has no data");
, N Rows(dt) <= 10,
print("not enough data");
, // else
print("ok")
);
, // catch
show(exception_msg);
);
나 노력하다 일반적으로 스크립트를 사용한 후 정리해야 하기 때문에 스크립트가 길어지거나 복잡해지면 jsl 형식을 다시 지정하는 것을 방지합니다. 재포맷이 필요한 만큼 유연하더라도 제대로 구성하지 않아도 될 것 같습니다...
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?이에 대한 나의 해결책은 둘러싸는 울타리 수준에 중요한 쉼표를 넣는 것입니다.다음은 예입니다. IF 블록을 구분하는 쉼표는 IF 문의 수준에 있고 TRY의 경우에도 동일합니다.
Names Default to Here( 1 );
dt = Current Data Table();
Try(
If( Contains( dt << Get Column Names, As Name( "height" ) ),
mean = Col Mean( dt:height );
max = Col Max( dt:height );
min = Col Min( dt:height );
std dev = Col Std Dev( dt:height );
Write( "\!NSome stats on :HEIGHT:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Contains( dt << Get Column Names, As Name( "weight" ) ),
mean = Col Mean( dt:weight );
max = Col Max( dt:weight );
min = Col Min( dt:weight );
std dev = Col Std Dev( dt:weight );
Write( "\!NSome stats on :WEIGHT:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Contains( dt << Get Column Names, As Name( "age" ) ),
mean = Col Mean( dt:age );
max = Col Max( dt:age );
min = Col Min( dt:age );
std dev = Col Std Dev( dt:age );
Write( "\!NSome stats on :AGE:",
"\!NMin: ", min,
"\!NMax: ", max,
"\!NMean: ", mean,
"\!NStd Dev: ", std dev
)
,
Print( "Cannot find columns 'height', 'weight', or 'age'" )
)
,
Print( "mistakes were made" )
)
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?JMP에서는 제품 품질 담당 직무에 귀하를 채용해야 합니다! 정말 좋아요!
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?당신의 지원에 감사드립니다 
소원은 이렇습니다.
JSL 편집기에서 최적화된 구문 강조 표시
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?이에 대한 귀하의 생각과 JMP 및 JSL 개선에 대한 다른 생각이 마음에 듭니다. 이 의견을 JMP 위시리스트에 추가하시기 바랍니다.그러면 실제로 변경을 수행할 수 있는 개인에게 귀하의 의견이 전달됩니다.
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?흠, 내 생각엔:
Jmp에 5초 이내에 모든 종류의 그래프를 생성하는 데 도움이 되는 멋진 GraphBuilder가 있다면,
복잡한 If & Match 구조를 5초 이내에 분석하여 구조의 오류를 찾아내는 것도 가능해야 합니다.
"reformat script"를 통한 자동 들여쓰기는 훌륭합니다. 이는 코드 구조의 전체 계층 구조를 한 눈에 보여줍니다.
하지만 이는 단점이기도 합니다. 완벽한 계층
이것이 인간의 눈이 정보를 분석하는 데 어느 정도 시간이 필요한 이유이며, 심지어 그렇게 하려면 뇌의 지원도 필요합니다.
"눈"이 뇌의 지원을 덜 필요로 하는 형식으로 정보를 인코딩하는 방법이 있습니다. @XanGregg :
총회: 모든 그래프는 틀렸지만 일부는 유용함 - Xan Gregg
이런 맥락에서 생각해보면...
A If 문을 강조 표시하려면 괄호를 클릭하세요. 매우 유용하다
- 하지만 포함된 텍스트의 음영이 균일하지 않으면 좋겠지만(왼쪽 그림처럼) - 하지만 의미있는 방법으로 (오른쪽 사진처럼).
Jmp에는 필요한 모든 정보가 있습니다(들여쓰기를 조정하는 데 사용합니다). 음영 처리에 사용하지 않는 이유는 무엇입니까?
왼쪽의 들여쓰기에서 추론할 수 없는 오른쪽 그림에는 추가 정보가 없다는 것이 분명합니다.
그리고 들여쓰기는 더 많은 것을 보여줄 수도 있습니다: 복잡한 코드 구조의 전체 계층 구조를 한 눈에 볼 수 있습니다. 예.
하지만 오른쪽 이미지는 꽤 그럴듯해 보이죠?
편집하다: 소원 바로가기

Re: JSL: if - else -> 쉼표를 찾으시겠습니까?좋아 했어요 이 사람이 여기서 무슨 말을 하려고 했는지 .
JMP는 이 형식에 신경 쓰지 않지만 표시 상자의 계층 구조를 반영하는 방식으로 코드를 작성하는 규칙이 없으면 금방 혼란에 빠질 것입니다.
이 설명은 표시 상자에만 적용되는 것이 아니라 일반적으로 JSL에 적용됩니다. 나 자신도 여전히 배우고 있지만, 때로는 법의학적인 연습(공교롭게도 대부분의 학습이 발생하는 경향이 있음)으로 변하더라도 코드를 논리적인 부분으로 시각적으로 구조화하는 것은 좋은 시간 투자입니다.
Re: JSL: if - else -> 쉼표를 찾으시겠습니까?JSL 창을 마우스 오른쪽 버튼으로 클릭하고 "스크립트 다시 포맷"을 선택합니다.
그러면 표준 들여쓰기에 블록이 정렬됩니다.
함수 또는 행렬 경계 괄호 {} []를 클릭하면 일치하는 괄호가 선택됩니다.
Re: JSL: if - else -> 쉼표를 찾으세요?무엇이 잘못될 수 있는지에 대한 좋은 예:
x= if(<BR />// 1st test<BR /><BR /> 1==3,
1
, // 2nd test
1==5,
2,
, // others
3
)
코드를 실행한 후, x= ...
더 보기...(강조해서 읽어보세요)
힌트:

... 오류 메시지가 없나요?
Re: JSL: if - else -> 쉼표를 찾으세요?여러분, 이건 거의 완벽해요:

https://community.jmp.com/t5/Discussions/If-statement-comma/mp/824212/highlight/true#M100363
좋은 해결책이네요
... :folded_hands: JSL 편집기에서 최적화된 구문 강조 기능이 제공될 때까지.