JSL は名前の空白を無視します。ほとんどの人はこれを利用しません。重要な質問ではありませんが、なぜなのかとよく疑問に思いました。
私の会社には、JSL のカジュアルなスクリプターがたくさんいて、ヘビー級のスクリプターも数人います。私は他の人のコードを貪欲に読む(読む)人で、ここで 20 人以上のコードを大量に読みました。また、コミュニティ フォーラムに投稿されたコードの例も数多く見てきました。
ほとんどの場合、コード作成者は、名前内の空白と大文字小文字を無視するという JMP の奇妙な決定を利用していないことがわかります。以下にいくつかの例を示します。
ほとんどの人は組み込み関数を使用しているようです。 () に挿入-- 空白を使用しますが、ユーザー定義名の場合は通常、空白を使用しないようにします。
私の主な質問は、なぜですか?一般的な文章を書く場合と同様に、空白を使用すると、コードがはるかに速く読めることがわかりました。
誰かが伝統的なプログラミング言語の出身であることは理解できますが、私の職場で初めてスクリプタを作成する人をかなりの数見てきました。彼らも通常は同じことをします (組み込み名にはスペースを使用し、使用しません)ユーザー定義名のスペース)。
私は個人的に、JSL が名前を提供できる柔軟性を非常に高く評価していますが、ここにいる他の人たちはどう思っているのか興味があります。
例:
から@drewfogliaこの中で役職:

から@Phil_Brownこの中で役職:

ファイルlibRecall_v2_0.jslによる@MikeD_Anderson
そして、これが私のコードからの抜粋です -- 私は名前に空白を広範囲に使用しています。

自動化とスクリプト作成Re: JSL は名前の空白を無視します。ほとんどの人はこれを利用していません。JSL を書き始めたとき、JMP で名前を設定できるすべての方法をすぐにオプトアウトしたと思います。おそらく、それは私が JMP をあまり信頼しておらず、奇妙に感じたからです (JavaScript と Python の経験はありましたが、そうではありませんでした)当時はどの言語にも適切なプログラミング スタイルがありませんでした)。
最近はそうしますJSL を記述するときにコードの再フォーマットを頻繁に使用すると、JMP 名に空白が追加されます (演算子名へのスペースの挿入を有効にしているため)。 また、私の名前には空白を使用していません (JSL 用の Python スタイル ガイドに大まかに従っています)。これは (場合によっては) 自分の名前を JMP で作成した名前から区別するのに役立ちます。
Re: JSL は名前の空白を無視します。ほとんどの人はこれを利用していません。そうですね、他の人のことを言うことはできませんが、私の場合、それはほとんど習慣です。 JSL を始めるずっと前から、私は Basic、VB、LaTeX、Mathematica でコーディングしていました。 これらすべての言語には空白に関する制限があります。 ある言語のスキルセットを再調整すると、他の言語に戻ったり、新しい言語に足を踏み入れたりすることが困難になる場合(ロックダウン中に Python を始めたときなど)、私にとってはまったく意味がありませんでした。
Re: JSL は名前の空白を無視します。ほとんどの人はこれを利用していません。JSL から Python / JavaScript に切り替える際には、確かに多くの問題があります。言語間の切り替えに多くの時間を費やしている場合は、可能な限り統一した形式を維持することが合理的です。
Re: JSL は名前の空白を無視します。ほとんどの人はこれを利用していません。これに関するもう 1 つの考えは、組み込み変数 (数式など) には JSL エディターに組み込まれた構文強調表示があるため、それらが特別なものであることが簡単にわかるということです。 ユーザー定義のものでは、間のセミコロンが欠けている可能性のある 1 つまたは 2 つの変数を区別するのが難しくなります。 これにより、長いスクリプトやアプリケーションのデバッグがより困難になります。
Re: JSL は名前の空白を無視します。ほとんどの人はこれを利用していません。列名については正しいです。列名は、ほとんどの JSL 名の名前構造と厳密には一致しません。新しい JMP18 機能のことを聞いてとてもうれしいです。私は間違いなくたくさん使います。
JMP 列名に関するもう 1 つの問題は、修正されれば驚くべきことですが、それはローカル名やヒア名よりも優先されるという事実です。ここのサンプル スクリプトでは、小さなテーブルの列と同じ名前を持つため、「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; このとき、私は 1 つのルールに従うことにしました 
それでも、すぐにもう少し簡単になるでしょう。
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-resolve-names.shtml
Re: JSL は名前の空白を無視しますが、ほとんどの人はこれを利用しません。ルールはたくさんありますが、スコープ指定されていない名前はローカルになるように強制する (つまり、ローカル スコープのみをチェックし、HERE や GLOBAL、列名はチェックしない) など、厳密なモードをオンにするフラグが JSL にあれば便利です。また、ローカルでないものは明示的にスコープ指定する必要があります。これは便利です。