Si cela vous convient, envisagez de participer à:
Le mensuel Dyalog APL 2017 Code Golf Challenge
Faire 12 extraits / expressions , dans la même langue, qui génèrent les nombres de 0 à 10 et 42 respectivement, mais sans écrire de données littérales numériques, chaînes ou caractères.
Données intégrées, comme PI()
etALPHABET()
, sont correctes, et le sont, par exemple, les constantes U, X, Y, Z et A de CJam, et les processus BLEND, CHORD, CENTER, BREAK et LINES de Processing.
Chaque extrait doit pouvoir être autonome, c'est-à-dire qu'il peut ne pas être interdépendant. Cependant, dans un seul extrait de code, vous pouvez affecter une variable et l'utiliser librement, tant que vous vous y référez directement par son nom, et non par le biais d'une chaîne contenant son nom.
Tous les extraits doivent être valides sur l'ordinateur de l'émetteur au moment de la soumission (comme indiqué par SE), mais ne peuvent pas dépendre de conditions locales inhabituelles telles que le nombre de fichiers dans un répertoire, la date ou l'heure exacte ou les informations spécifiques de l'utilisateur. .
Exemples d'extraits valides
3: INT(LOG10(YEAR(TODAY())))
parce qu'il reste vrai dans un avenir prévisible
4: CUBICROOT(LEN(CHARACTERSET()))
parce qu'un jeu de caractères de 256 lettres est très courant
8: SQRT(SYSTEMTYPE())
parce que les systèmes 64 bits sont très courants
Exemples d'extraits non valides
5: LEN(USERNAME())
parce que la plupart des gens n'utilisent pas «Admin» comme identifiant :-)
9: LOG10(SYSTEMMEMORY())
parce que cela ne fonctionne que sur des systèmes avec exactement 1 Go de mémoire
42: CODE("*")
parce qu'il contient un littéral chaîne / caractère
Le résultat de chaque extrait doit donner un nombre réel (value, int, float, etc.) pouvant être utilisé pour des calculs ultérieurs utilisant le même langage que l'extrait, c'est-à-dire pas une chaîne de texte représentant ce nombre.
Seules les langues basées sur les caractères sont autorisées.
Le score est le nombre total d'octets de tous les 12 extraits combinés. Les nouvelles lignes séparant les extraits ne sont pas comptées dans.
Notez que les règles ci-dessus peuvent empêcher certaines langues de participer, même si elles sont complètes.
questions - réponses
Q Les programmes peuvent-ils accepter n'importe quelle entrée?
R Oui, mais vous ne pouvez pas simplement demander une entrée et entrer le numéro correspondant.
Q Les chiffres physiques (autres que les données) sont-ils autorisés?
A oui, par exemple LOG10()
.
Q Les symboles en Ruby comptent-ils comme des littéraux?
Un oui.
Q Le score inclut-il des nouvelles lignes entre chaque extrait?
Un no
Q TI-BASIC est-il suffisamment "basé sur les caractères" pour être valide?
Un oui.
Q Est-ce que false et true comptent comme des littéraux numériques?
R Non, ils sont acceptables.
Q Pouvons-nous utiliser un littéral numérique pour appeler une fonction si c'est le seul moyen et que le nombre n'influence pas la sortie de la fonction?
R Oui, si c'est la méthode normale pour écrire du code dans votre langue.
Q Ma langue suppose qu'il y a un [quelque chose] au début de chaque programme / expression. Dois-je l'inclure ou mes extraits doivent-ils uniquement fonctionner s'ils sont placés au milieu d'un programme / d'une expression?
A Ils devraient juste travailler au milieu d'un programme / d'une expression.
Q Qu'en est-il des littéraux de regex?
A Interdit, sauf pour les langues qui ne font que des expressions rationnelles.
Q Est-ce qu'un code pouvant imprimer tous les numéros spécifiés est acceptable?
R Non, ils doivent être séparés et mutuellement indépendants.
Q Puis-je supposer un passe-partout similaire int main() {}...
ou équivalent?
Un oui.
Q Quels types de données de sortie sont autorisés?
Un type de données numérique quelconque, comme int, float, etc.
Q Dois-je imprimer le résultat de chaque extrait?
R Non, il suffit de rendre le résultat disponible pour une utilisation ultérieure.
Q Les variables prédéfinies sont-elles autorisées?
A Oui, et ils sont réinitialisés (si modifiés) pour chaque extrait.
Q Est-ce que π et e sont considérés comme des littéraux numériques?
R Non, vous pouvez les utiliser.
Q Puis-je retourner 4 et 2 dans des cellules différentes pour 42?
R Non, ils doivent être connectés en un seul numéro.
Q octets ou caractères?
Un octet, mais vous pouvez choisir la page de code souhaitée.
Q Peut - on utiliser des fonctions constantes et des variables prédéfinies telles que J 9:
, Actually 9
et Pretzel 9
?
R Oui, si le vocabulaire est fini (19 pour J, 10 pour Actually et Bretzel).