Dans n'importe quel langage de programmation qui existait avant que cette question ne soit posée, écrivez un programme (pas une fonction) qui produit les caractères Hello world!
suivis d'une nouvelle ligne. Votre programme:
- ne doit utiliser aucun caractère plus d'une fois (y compris les espaces)
- ne doit utiliser que des caractères ASCII
- ne doit pas utiliser de bibliothèques intégrées
- ne doit pas recevoir d'entrée (utilisateur, fichier, nom de fichier, variable système, Internet, quoi que ce soit)
- ne devrait rien produire d'autre
Le gagnant est celui qui a le plus de votes après 14 jours et respecte les six règles.
La sixième règle est que vous ne pouvez pas utiliser H9 +, HQ9 +, HQ9 + B, HQ9 ++, HQ9 + 2D, Hello, Hello +, Hello ++, Hexish, CHIQRSX9 + ou Fugue. En outre, toutes les réponses qui nécessitent des implémentations plus récentes que ce défi doivent être marquées comme non concurrentes.
Avertissement: Cette question a été publiée avec l'hypothèse que Bonjour tout le monde! avec une répétition limitée n'a causé aucun dommage à votre ordinateur ou à votre cerveau lors de l'élaboration des réponses.
Réponses:
Perl 6 (
2928 caractères)C'était un peu ennuyeux, mais j'ai finalement réussi à créer un programme pour cette tâche. Merci à la grande communauté # perl6 de m'avoir aidé dans cette tâche. Cela m'a pris deux heures, j'espère que vous apprécierez. La sortie est entièrement conforme aux spécifications, y compris une nouvelle ligne.
Il y a quatre jetons d'intérêt.
say
Cela génère l'argument avec une nouvelle ligne à la fin. La nouvelle ligne après la commande elle-même est nécessaire comme remplacement d'espace.
Q[@A`DO world!]
Ceci est la première chaîne.
Q[]
est pour les chaînes brutes (commer""
en Python). Il peut prendre n'importe quel délimiteur (ou une paire d'entre eux), dans ce cas[]
. Dans ce cas, je l'utilise pour les guillemets, je n'ai pas besoin d'un comportement de chaîne brute.~|
Il s'agit de l'opérateur stringwise (
~
) bitwise ou (|
).<HeLhg>
<>
est un littéral de liste, qui prend une liste d'éléments séparés par des espaces. Dans ce cas, il a un élément, et utilisé comme scalaire, il donne une chaîne.la source
Perl 5 avec
-M5.010
, 29 octetsEssayez-le en ligne!
J'ai acquis beaucoup de connaissances depuis ma première tentative. Toujours pas aussi court que les autres réponses, mais le meilleur que je puisse trouver!
la source
w
.Perl 5.10+: 24 caractères
OK, je pense que c'est aussi court qu'en Perl.
Exécutez avec
perl -M5.010
(ou tout simplementperl -E
) pour activer la fonction Perl 5.10+say
.la source
ll
mer ...Golfscript
4233Je pourrais aussi bien jouer au golf, étant donné que je devais mettre une partie du code et toutes les données dans le même bloc sans aucun moyen de délimiter les deux, je pense que c'est un résultat assez court. Contrairement à ma première soumission, le code de bloc fait maintenant partie intégrante des données, donc
{1
non seulement commencez le bloc et mettez un1
sur la pile, mais ce sont aussi les données qui définissent leH
, et ainsi de suite. La création du tableau inclut désormais la chaîne d'entrée vide, ce qui signifie que je n'ai pas à recadrer le début car il n'y a qu'un seul caractère entre la chaîne vide et leH
, ce caractère est coupé lorsque je prends un caractère sur deux et le vide la chaîne est finalement sortie comme rien.Démo en ligne: http://golfscript.apphb.com/?c=ezF3WiRRZWleQWsgM2gtKXVsbXNvZ3I3fS5gKl0yJW4r
Définit un bloc de code. Fait une copie du bloc de code et le convertit en chaîne. Utilise le bloc de code pour parcourir la chaîne. Pour chaque itération, le code fera une copie de la valeur de caractère précédente, xor avec la valeur de caractère actuelle, et soustrayez 1. La chaîne résultante a alors les 6 premiers caractères supprimés et chaque deuxième caractère supprimé. Enfin, un saut de ligne est ajouté.
"r iFNGDJUHv98oIMgtplbh4m" n'est que deux variables non déclarées, elles ne font rien, mais elles sont soigneusement construites pour produire le résultat souhaité.
Démo en ligne: http://golfscript.apphb.com/?c=W3sxJF4ociBpRk5HREpVSHY5OG9JTWd0cGxiaDRtfS5gXCpdNj4yJW4rla source
Vim 7.3, 18 frappes
Copie la chaîne
Hello world
de ce fichier d'aide , qui a malheureusement été supprimée dans les versions jamais de Vim.la source
<Esc>
et les combinaisons impliquant la touche Ctrl comptent comme un octetBefunge-98 ,
3431 octetsEssayez-le en ligne!
Utilise plusieurs méthodes différentes pour éviter les caractères en double.
Tout d'abord, nous utilisons un littéral de chaîne enveloppant pour éviter d'utiliser deux
"
s. Cela ajoute "monde!" à la pile.En partant à gauche sur la deuxième ligne, nous ajoutons 9 au supplément
f
pour faireo
du "Bonjour". Nousg
et le caractère de la cellule 5,0 (l
), puis le dupliquons. Le'
est utilisé pour récupérer la lettree
. Multipliez 9 par 8 pour obtenir 72, la valeur ASCII deH
. Nous imprimons ensuite tout à l'aide deck,
, et inversons la direction avec le>
pour réutiliser le,
pour imprimer la nouvelle ligne (a
).la source
+
etd
.Elixir , 37 octets
Essayez-le en ligne!
Je ne peux pas garantir que cela aurait fonctionné en 2014 lorsque ce défi a été publié, et Elixir était toujours pré-1.0 (et donc, s'il est formellement "concurrent", mais en regardant leurs notes de version, je pense que cela devrait être D'ACCORD). Quoi qu'il en soit, je suis heureux d'avoir enfin trouvé une solution valable à cette tâche en utilisant un langage à usage général conventionnel autre que Perl!
Procédure pas à pas
la source
Stax (non concurrent), 8 octets
Essayez-le en ligne!
Juste un littéral de chaîne compressé. Heureusement, Stax me laisse partir sans le backtick final.
la source