☑ クールな新機能
☑ 多くのユーザーに役立つ可能性があります!
☑ 「バグ」のように感じられるものを削除します
☐ あれば便利
☐ 誰もそれを必要としない
#myTop10_2024
短い:
JSL エディターで、どの関数が引数を評価し、どの関数が評価しないかを表示してみましょう。
長さ:
このウィッシュリストのリクエストのきっかけは何ですか?
一方、JSL には非常に強力な動作があり、新しいユーザーが問題なく使い始めることが困難になります。
一部の関数は引数を評価しますが、他の関数は評価しません。
これは、式の処理に使用される関数にとって非常に重要です。
@joseph_morganによる素晴らしい講義があります: JSL を使用して効率的で堅牢なアプリケーションを開発する (EU 2018 415)では、違い、それらの違いへの対処方法、それらを使用して効率的で堅牢なアプリケーションを開発する方法について説明しています。
...当時の状況を説明しています:Jmp 14 [2018]:
これはドキュメントには存在しません。
これは、式処理関数の動作をリバースエンジニアリングすることによって私が解明したものです [ ]。
信じてください、[ ] これらの機能をここで考えなければ、決して正しく理解することはできません。
ここにリストされている式処理関数以外にも、すべての関数に同じことが当てはまります。
これらの関数をこのように考えなければ、決して正しく理解することはできません。
関数呼び出しの前に引数が評価されるかどうかを知ることは非常に重要です。
このコードは機能しますか、それとも機能しませんか?!?
dt = Expr(current data table());
myscript = Expr(get script());
dt << myscript
残念ながら、JSL スクリプターにとって、関数がどのように動作するか (引数を評価するかどうか) についてのヒントはありません。
おそらく、引数の 1 つを評価するだけでしょうか? 誰にもわかりません。
ユーザーは知っておく必要があります!
...または、それぞれの関数の動作をリバース エンジニアリングします。
どのような改善を望みますか?
関数が引数を評価するさまざまな方法、または評価しないさまざまな方法を示すために、構文の強調表示を実装してください。
アドオン: スクリプト インデックスの違いも示してください。

JSL エディターでは、キーボード ショートカットを使用して強調表示を有効/無効にすることができます。
Expr(_x_^2) は一種のジレンマを示しています:
Expr() の引数は評価されません。ただし、^ の 2 つの引数は評価されます。
おそらく、強調表示はマウスまたはカーソルの位置に応じて行われます。つまり、マウス/カーソルが現在位置するブランチの下の引数だけが強調表示されます。
このアイデアはなぜ重要なのでしょうか?
新しい構文の強調表示により、JMP はユーザーを自動的にガイドして正しいコードを生成します。
ユーザーは、エラーメッセージを取得したり、間違った結果を表示したりするためにコードを実行する必要はありません。
... または、関数をリバース エンジニアリングする - @JosephMorganが論文を準備するためにしなければならなかったように。
その他の希望
どうやら、
1) 引数が評価される
2) 引数が評価されない
3番目のバリエーションがあります:
1b) 引数は「1回」評価される
次のように動作する関数:
- 頭
- 列の再コード化(ターゲット列()引数の1番目の引数と引数)
- ...?
したがって、3 番目の色が必要になります。
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));ヘッドは議論を評価しますか?
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>