( aunque no encontraremos Findni atraparemos un tryCatch)
Esta es la segunda parte de una serie de varias partes de implementación de algunas funciones interesantes de R. La primera parte se puede encontrar aquí .
La tarea:
Debe implementar la matchfunción de R en el menor número de bytes posible.
Entrada:
x, una lista / matriz posiblemente entera de enterostable, una lista / matriz posiblemente entera de enterosnomatch, un solo valor enteroincomparables, una lista / matriz posiblemente entera de enteros
Salida:
- una sola matriz / lista de enteros
Ode igual longitudx, donde cada valorO[i]representa:- El índice
jdel primer valor entabledondetable[j]==x[i] nomatch, lo que indica que ningún valor entablees igual ax[i]OR quex[i]está en la lista deincomparables.
- El índice
Casos de prueba
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]
Se pueden generar más casos de prueba según sea necesario.
Reglas adicionales:
- R tiene índices basados en 1, pero son aceptables índices consistentes basados en alternativas. Por lo tanto, puede usar índices que comienzan en 3 o 17 o lo que sea, pero esto debe ser consistente y debe indicarlo en su respuesta.
- Si eligió el idioma tiene una función integrada que hace esto, también implemente su propia solución.
- Las explicaciones son apreciadas.
Este es el código de golf , por lo que la solución más corta en bytes gana.
4está dentro incomparables, por lo que no se puede igualar. Si su idioma no puede admitir números negativos, entonces está bien requerir números no negativos, pero indique esa suposición en su envío.
make.