こんにちは、
私はJMP16とJSLを初めて使用しますが、経験豊富なプログラマーです。
いくつかの理由で「マップ値」関数を使用したいのですが、これは間違った結果をもたらします。
私が達成したいのは、数字と文字列を含むリストからリストとして指定された不要なアイテムを削除することです
次の関数は、na_listから{option1、0、option2、0、...}の形式でna_valuesという名前の「マップ値」のリストを作成します(例:{option1、option2、...})。
そして、「各フィルター」と「マップ値」機能を使用してフィルターします。
wrap = function({filtered list,na_list}, {Default Local},
For Each( {value}, na_list, na_values=Insert(na_values,value);na_values=Insert(na_values,1););
return(Filter Each({value}, filtered list, Map Value(value, na_values, Unmatched(0))==0;));
);ただし、入力リストを異なる文字(!)で呼び出すと、異なる結果が得られます。
Show(wrap({"b",1, 2, 3},{"b"})); // <-- returns {1,2,3} => OK
Show(wrap({"d",1, 2, 3},{"d"})); // <-- returns {"d",1,2,3} => NOT OK
要素「b」を除外しようとした場合にのみ、期待どおりに機能しますが、別の文字列では機能しません。
ここで何が問題になっていますか? JMPのバグ? バージョン16.0.0(512257)を使用していますか?
よろしくお願いします、
トーマス