(ただしFind
、を見つけることも、キャッチすることtryCatch
もありません)
これは、興味深いR関数を実装するマルチパートシリーズのパート2です。パート1はここにあります。
タスク:
Rのmatch
関数をできるだけ少ないバイトで実装する必要があります。
入力:
x
、空の可能性のある整数のリスト/配列table
、空の可能性のある整数のリスト/配列nomatch
、単一の整数値incomparables
、空の可能性のある整数のリスト/配列
出力:
O
に等しい長さの整数の単一の配列/リストx
。各値O[i]
は次のいずれかを表します。- インデックス
j
の最初の値table
table[j]==x[i]
nomatch
、には値ことを示すtable
ISに等しいないx[i]
ORそのx[i]
リストにありますincomparables
。
- インデックス
テストケース
All in the form x, table, nomatch, incomparables -> output
outputs
[], [1,2,3], 0, [5] -> []
[1, 2, 3], [], 0, [5] -> [0, 0, 0]
[9, 4, 3, 6, 3], [9, 8, 7, 6, 5, 4, 3, 2, 1], -1, [4] -> [1, -1, 7, 4, 7]
[8, 6, 7, 5, 3, 0, 9], [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6], 1000, [1] -> [12, 8, 14, 5, 1, 1000, 6]
必要に応じて、より多くのテストケースを生成できます。
追加のルール:
- Rには1ベースのインデックスがありますが、一貫した代替ベースのインデックスは受け入れ可能です。そのため、3または17などで始まるインデックスを使用できますが、これは一貫している必要があり、回答でこれを指定する必要があります。
- これを行う言語が組み込まれている言語を選択した場合は、独自のソリューションも実装してください。
- 説明を歓迎します。
これはcode-golfなので、バイト単位の最短の解決策が勝ちです!
4
はにincomparables
あるため、一致することはできません。あなたの言語が負の数をサポートできない場合、非負の数を要求することは問題ありませんが、あなたの提出においてその仮定を述べてください。
make
。