Toutes les interactions avec le site d'Exercism sont gérées automatiquement. Les representers ont une seule responsabilité : prendre une solution et en renvoyer une représentation. Consulte l'introduction pour plus d'informations.
two-fer).representation.txt dans le répertoire de sortie.representation.json dans le répertoire de sortie.mapping.json dans le répertoire de sortie.Le representer dispose de 100 % des ressources de la machine pendant une fenêtre de 20 secondes par solution. Au bout de 20 secondes, le processus est arrêté et signale un dépassement de délai.
On te recommande vivement de suivre notre document sur les bonnes pratiques de performance pour réduire le risque de dépassements de délai.
Le fichier representation.txt contient une sorte de représentation canonique. Cette représentation peut prendre de nombreuses formes, mais c'est généralement un AST :
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 représentation peut aussi simplement être du code source (normalisé) :
class PLACEHOLDER_1
def PLACEHOLDER_2
PLACEHOLDER_3 = "foo"
PLACEHOLDER_4 = "foo"
return PLACEHOLDER_3
end
def PLACEHOLDER_3
PLACEHOLDER_1
end
end
Le fichier mapping.json associe les placeholders à leurs valeurs d'origine :
{
"PLACEHOLDER_1": "TwoFer",
"PLACEHOLDER_2": "two_fer",
"PLACEHOLDER_3": "foo",
"PLACEHOLDER_4": "bar"
}
Il est important de noter que tous les noms identiques doivent être remplacés par le même placeholder, quelle que soit leur portée.
Le fichier representation.json contient des métadonnées :
version : le numéro de version du representer (par défaut 1)Exemple :
{ "version": 2 }