JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!중요한 질문은 아니지만 종종 그 이유가 궁금했습니다.
우리 회사에는 JSL을 사용하는 일반 스크립터가 많고 전문적인 스크립터도 몇 명 있습니다.나는 다른 사람들의 코드(읽기)를 탐욕스럽게 소비하고 있으며 여기에서 20명 이상의 사람들로부터 많은 양의 코드를 읽었습니다.또한 여기 커뮤니티 포럼에 게시된 코드의 예를 많이 보았습니다.
거의 보편적으로 코드 작성자가 이름의 공백과 대소문자를 무시하는 JMP의 이상한 결정을 이용하지 않는다는 것을 알 수 있습니다.다음은 몇 가지 예입니다.
대부분의 사람들은 다음과 같은 내장 함수를 사용하는 것 같습니다. 에 집어 넣다() -- 공백이 있지만 사용자 정의 이름의 경우 일반적으로 이를 수행하지 않습니다.
내 주요 질문은 왜?나는 일반적인 글쓰기에서처럼 공백을 사용할 때 코드를 읽는 것이 훨씬 더 빠르다는 것을 알았습니다.
전통적인 프로그래밍 언어를 사용하는 사람이 있다는 것은 이해할 수 있지만 직장에서 스크립터를 처음 접하는 사람들을 꽤 많이 보았습니다. 그들은 일반적으로 동일한 작업을 수행합니다(내장 이름에는 공백을 사용하고 공백을 사용하지 않음). 사용자 정의 이름의 공백).
개인적으로 저는 JSL이 제공하는 이름의 유연성에 크게 감사하게 되었습니다. 하지만 여기 있는 다른 사람들은 어떻게 생각하는지 궁금합니다.
예:
~에서 @drewfoglia 이것에 우편 :

~에서 @Phil_Brown 이것에 우편 :

파일 libRecall_v2_0.jsl ~에 의해 @MikeD_앤더슨
그리고 여기 내 코드에서 발췌한 내용이 있습니다. 저는 이름에 공백을 광범위하게 사용합니다.

자동화 및 스크립팅Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!JSL을 작성하기 시작했을 때 JMP에서 이름을 설정할 수 있는 모든 방법을 즉시 선택 해제한 것 같습니다. 아마도 JSL을 신뢰하지 않았고 이상하게 느껴졌기 때문일 것입니다. (저는 javascript와 Python에 대한 배경 지식이 있었지만 그렇게 하지 않았습니다. 당시에는 어떤 언어에도 적합한 프로그래밍 스타일이 없었습니다.)
요즘은 내가 그래 JSL을 작성할 때 코드 재형식화를 많이 사용하면 JMP 이름에 공백이 추가됩니다(연산자 이름에 공백 삽입을 활성화했기 때문입니다). 그리고 내 이름에는 공백을 사용하지 않습니다. (저는 일종의 JSL용 Python 스타일 가이드를 느슨하게 따릅니다.) 이는 (때때로) 내 이름과 JMP 생성 이름을 구분하는 데 도움이 됩니다.
Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!글쎄요 - 다른 사람들을 대신해서 말할 수는 없지만 제 입장에서는 대부분 습관입니다. 저는 JSL을 시작하기 훨씬 전에 Basic, VB, LaTeX, Mathematica로 코딩을 하고 있었습니다. 모든 언어에는 공백에 대한 제한이 있습니다. 다른 언어로 돌아가거나 새로운 언어로 들어가기가 더 어려워질 때(예를 들어 폐쇄 기간 동안 Python을 선택했을 때처럼) 한 언어에 대한 내 기술 세트를 재정비하는 것은 결코 의미가 없습니다.
Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!JSL에서 Python/JavaScript로 전환하는 데 많은 문제가 있습니다!언어를 전환하는 데 많은 시간을 소비한다면 가능한 한 동일한 형식을 유지하는 것이 좋습니다.
Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!이에 대한 또 다른 생각 - 내장 변수(수식 등)에는 JSL 편집기에 구문 강조 기능이 내장되어 있으므로 변수가 특별한 것임을 쉽게 알 수 있습니다. 사용자 정의 항목을 사용하면 변수 사이에 세미콜론이 누락되었을 수 있는 변수 하나 또는 두 개가 무엇인지 말하기가 어렵습니다. 그러면 긴 스크립트와 애플리케이션에서 디버깅이 더 어려워집니다.
Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!열 이름에 대해서는 맞습니다. 열 이름은 대부분의 JSL 이름의 이름 구조와 엄격하게 일치하지 않습니다. 새로운 JMP18 기능에 대해 들으니 정말 반갑습니다. 앞으로도 이 기능을 많이 활용하겠습니다!
JMP 열 이름이 수정된다면 놀라운 또 다른 문제는 로컬/여기 이름보다 우선한다는 사실입니다. 여기 예제 스크립트에서는 작은 테이블의 열과 이름이 동일하기 때문에 여기 이름 "device"를 사용할 수 없습니다.
JSL에는 명시적인 범위 지정을 통해서만 열에 액세스할 수 있도록(열 수식 외부에서) 허용하는 엄격한 열 참조 모드가 있어야 합니다. 그거 참 좋을텐데...
Names Default to Here( 1 );
device = "ABC";
dt = New Table( "test",
<<NEW column=""></NEW>
Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!흠, 스크립트를 디버깅하는 데 2시간을 투자한 후 Concatenate가 때때로 대문자와 소문자를 구별한다는 사실을 알게 되면 왜 "Age" 열이 "age" 열 및 "age" 열과 다를 수 있는지 궁금할 것입니다.
(c) 데이터 테이블-메시지-열-존재-열 이름 의 @jthi
더보기...Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt:age << set name("a g e");
dt:age[1] = 999;
Show(Column(dt, "age")); //Column(dt, "age") = Column("a g e");
Show(dt:age[1]); //dt:age[1] = 999;
dt << New Column("age", Numeric, Ordinal);
Show(Column Name(2) == Column Name(6)); // Column Name(2) == Column Name(6) = 1; // Columns don't need unique names?
Show(Column(dt, "age")); //Column(dt, "age") = Column("age");
dt:age[1] = 9999;
Show(dt:age[1]); //dt:age[1] = 9999;
wait(1);
dt << Delete Column("age");
Show(Column(dt, "age")); //Column(dt, "age") = Column("a g e");
Show(dt:age[1]); //dt:age[1] = 999; 하나의 규칙을 고수하기로 결정한 시간이었습니다 
그럼에도 불구하고 곧 조금 더 쉬워질 것입니다.
dt << Has Column()을 통해 사용자는 열을 확인할 수 있으며 일치 항목이 정확해야 하는지 아니면 자유롭게 일치해야 하는지 선택할 수 있습니다.

Re: JSL은 이름의 공백을 무시합니다. 대부분의 사람들은 이를 활용하지 않습니다!아마도 여기서 문제는 열에 문자열을 쓰는 것이 불가능하고 셀에만 쓸 수 있다는 것입니다.
Names Default to Here( 1 );
dt = New Table( "test",
Add Rows( 1 ),
New Column( "DEVICE", Character)
);
device = "TOOL1";
dt:device[1] = device;
Re: JSL은 이름의 공백을 무시하지만, 대부분 사람들은 이 이점을 활용하지 않습니다!네, 로컬 이름과 열의 이름이 같다면 둘 다 병렬로 사용하면 정말 재밌습니다.
Names Default to Here( 1 );
xxx = "device";
dt = New Table( "test", add rows(10), New Column( "DEVICE", set each value (random integer(20))),
New Column( "VALUE", set each value (1))
);
device = "value";
Print(device);
distribution of DEVICE = Distribution( Continuous Distribution( Column( device ) ));
distribution Of VALUE = Distribution( Continuous Distribution( Column( Eval(device )) ));
another distribution of DEVICE = Distribution( Continuous Distribution( Column( "device" ) ));
:value << set formula(device);
wait(3);
:value << set each value (device)
총 13개의 규칙이 있고, 예외도 몇 가지 있습니다!
https://www.jmp.com/support/help/en/17.1/?os=win&source=application#page/jmp/rules-for-resolving-names.shtml
Re: JSL은 이름의 공백을 무시하지만, 대부분 사람들은 이 이점을 활용하지 않습니다!규칙은 많지만, JSL에 strict 모드를 켜는 플래그가 있으면 좋을 텐데, 범위가 지정되지 않은 이름은 강제로 로컬이 되도록 하고(즉, 로컬 범위만 확인하고 HERE, GLOBAL은 확인하지 않고, 열 이름은 확인하지 않음), 로컬이 아닌 모든 것은 명시적으로 범위가 지정되도록 요구합니다. 좋을 텐데요.