Todas las interacciones con el sitio web de Exercism se gestionan automáticamente. Los representadores tienen la única responsabilidad de tomar una solución y devolver una representación de ella. Consulta la introducción para obtener más información.
two-fer).representation.txt en el directorio de salida.representation.json en el directorio de salida.mapping.json en el directorio de salida.El representador dispone del 100 % de los recursos de la máquina durante una ventana de 20 segundos por solución. Transcurridos 20 segundos, el proceso se detiene y notifica que se ha agotado el tiempo.
Te recomendamos encarecidamente que sigas nuestro documento de buenas prácticas de rendimiento para reducir la probabilidad de que se agote el tiempo.
El fichero representation.txt contiene algún tipo de representación canónica. Esta representación puede adoptar muchas formas, pero normalmente es un árbol de sintaxis abstracta:
s(:class,
s(:const, nil, :PLACEHOLDER_1), nil,
s(:begin,
s(:def, :PLACEHOLDER_2,
s(:args),
s(:begin,
s(:lvasgn, :PLACEHOLDER_3,
s(:str, "foo")),
s(:lvasgn, :PLACEHOLDER_4,
s(:str, "foo")),
s(:return,
s(:lvar, :PLACEHOLDER_3)))),
s(:def, :PLACEHOLDER_3,
s(:args),
s(:const, nil, :PLACEHOLDER_1))))
La representación también puede ser simplemente código fuente (normalizado):
class PLACEHOLDER_1
def PLACEHOLDER_2
PLACEHOLDER_3 = "foo"
PLACEHOLDER_4 = "foo"
return PLACEHOLDER_3
end
def PLACEHOLDER_3
PLACEHOLDER_1
end
end
El fichero mapping.json asigna a los marcadores de posición sus valores originales:
{
"PLACEHOLDER_1": "TwoFer",
"PLACEHOLDER_2": "two_fer",
"PLACEHOLDER_3": "foo",
"PLACEHOLDER_4": "bar"
}
Es importante tener en cuenta que todos los nombres idénticos deben sustituirse por el mismo marcador de posición, independientemente del scope.
El fichero representation.json contiene metadatos:
version: el número de versión del representador (por defecto, 1)Ejemplo:
{ "version": 2 }