(nous ne trouverons Find
ni n'attraperons untryCatch
, cependant)
Il s'agit de la deuxième partie d'une série en plusieurs parties d'implémentation de fonctions R intéressantes. La première partie peut être trouvée ici .
La tâche:
Vous devez implémenter la match
fonction de R dans le moins d'octets possible.
Contribution:
x
, une liste / tableau d'entiers éventuellement videtable
, une liste / tableau d'entiers éventuellement videnomatch
, une valeur entière uniqueincomparables
, une liste / tableau d'entiers éventuellement vide
Sortie:
- un seul tableau / liste d'entiers
O
de longueur égale àx
, où chaque valeurO[i]
représente soit:- L'index
j
de la première valeurtable
oùtable[j]==x[i]
nomatch
, indiquant qu'aucune valeur danstable
n'est égale àx[i]
OU quix[i]
est dans la liste deincomparables
.
- L'index
Cas de test
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]
Plus de cas de test peuvent être générés selon les besoins.
Règles supplémentaires:
- R a des indices basés sur 1, mais des indices basés sur une alternative cohérente sont acceptables. Vous pouvez donc utiliser des indices qui commencent à 3 ou 17 ou autre chose, mais cela doit être cohérent, et vous devez l'indiquer dans votre réponse.
- Si vous avez choisi la langue avec une fonction intégrée qui le fait, veuillez également implémenter votre propre solution.
- Les explications sont appréciées.
Il s'agit de code-golf , donc la solution la plus courte en octets gagne!
4
est activé, incomparables
il ne peut donc pas être mis en correspondance. Si votre langue ne peut pas prendre en charge les nombres négatifs, il est bon d'exiger des nombres non négatifs, mais énoncez cette hypothèse dans votre soumission.
make
.