Comme certains d'entre vous le savent peut-être, pour obtenir une langue sur le merveilleux Try It Online de Dennis ! , un bonjour, le monde! programme est requis. Récemment, Dennis a proposé un moyen de charger ces programmes à partir du site Web. Voici une corbeille JSON des caractères utilisés dans ces programmes, par fréquence, au 27 juillet 2017.
Certains de ces personnages ont besoin d'amour, donc votre défi est de produire Hello, World! (de préférence dans une langue impliquée dans ce processus), en utilisant uniquement les caractères spécifiés ci-dessous. Ces personnages sont tous les caractères utilisés entre 10
et 99
(inclusivement), avec les deux personnages les plus courants, 0
et parce que je me sens bien.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Votre utilisation du caractère doit être basée sur son apparence dans un programme normal, et non sur son point de code ou sa valeur d'octet.
Vous devez utiliser au moins un caractère de cet ensemble, donc les programmes de longueur 0 ne sont pas valides.
C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Réponses:
SOGL V0.12 ,
897568 octetsEssayez-le ici!
Remarque: chaque fois que la
q
sortie est référencée ici, elle neoOpP
s'affiche pas car la sortie popping (aucune ) n'est indisponible ou génère une nouvelle ligne pré-ajoutée.Explication (obsolète, ce qui a changé, c'est que le "H" est imprimé en utilisant les lettres de l'alphabet):
Fait amusant: tous les caractères des caractères autorisés sont dans la page de code SOGL: D
la source
palenChars.txt
) sont plus mises à jour iciPerl 5 , 76 octets
Cela utilise une fonctionnalité qui est obsolète, mais qui fonctionne localement dans mon terminal (qui est la version 5.18.2 comme indiqué). Dans les anciennes versions de Perl
?\w?
est un synonyme/\w/
qui me donne accès à la correspondance d'expressions rationnelles et j'ai suffisamment de caractères pour$&
(dernière correspondance) et$`
(texte précédant la dernière correspondance). J'en ai besoin pour pouvoir obtenir leO
. Je génère cela en créant uneglob
référence ($_=\*G
qui, exprimée en scalaire, ressemble à quelque choseGLOB(0x7ffb728028d0)
). Une fois que c'est dedans$_
,?B?
correspondra àB
et$`
contiendraGLO
, je pourrai alors faire correspondre\w$
ce qui serait stockéO
dans$&
qui est inséré dans les chaînes que j'exécute chaîne par chaîne-ET pour créer le reste du texte, le corps de la chaîne est en minuscules à l'aide\L
.Essayez-le en ligne! - utilise
/\w/
à la place?\w?
car la version de Perl sur TIO est trop récente.Perl 5 , 65 octets
C'est un peu plus tricheur car il s'appuie sur le nom de fichier sur TIO (qui est
.code.tio
), donc je ne pense pas vraiment que ce soit en compétition, mais j'étais content du résultat!Essayez-le en ligne!
la source
-p
va. Bon travail, c'est ce que j'espérais quand j'ai posé cette question :)Unaire , 7 * 10 182 octets
Unary est Brainfuck converti en binaire converti en unaire en utilisant
0
comme compteur. Essentiellement, il condense un programme Brainfuck en un nombre et la sortie est ce nombre de0
s. Ce sont généralement de très gros programmes.Je ne collerai pas le programme ici parce que je ne sais pas combien de texte SE permet mais je parie que c'est moins que cela. Au lieu de cela, je vais coller le nombre précis de zéros dans cette réponse:
Comme c'est une réponse assez bon marché, garantie de ne pas être la plus courte, et je l'ai simplement copiée , je fais de ceci un article wiki.
la source
05AB1E ,
13710695 octetsEssayez-le en ligne!
-31 merci à @Adnan d'avoir indiqué que je pouvais utiliser la base 108.
- ?? merci à @Riley d'avoir signalé des erreurs.
Ancienne version (méthode différente):
05AB1E ,
211186166 octetsEssayez-le en ligne!
Haha! ET ICI JE NE PENSE PAS ESOLANGS STOOD AUCUNE CHANCE PLAUSIBLE!
Nous obtenons d'abord 255 stockés dans X:
Ensuite, en utilisant la même astuce de longueur, nous poussons:
1296995323340359595058728869715
Où nous utilisons simplement à la
0<space>
place de la longueur pour les zéros.Puis, enfin, nous poussons les 255 que nous avons stockés et convertissons de 255 en base 10 :
Toujours jouer au golf en utilisant les autres caractères autorisés et la duplication, ce sera une minute.
la source
Beatnik , 148 octets
Essayez-le en ligne!
Explication
Beatnik fonde l'instruction exécutée sur la base du score de scrabble du mot. Voici une explication abrégée:
la source
Poules d'eau (v2.0),
3423983923866749716 octetsJe pense que cela peut être un peu joué au golf, Moorhens n'est pas une langue facile à travailler.
Explication
Moorhens est une langue basée sur des mots du dictionnaire. Chaque mot correspond à une opération basée sur son hachage. Les cinq opérations utilisées ici sont
xU
,ER
,XI
,KA
etAA
xU
incrémente le TOSER
met un nouveau zéro sur la pile.XI
décrémente le TOSKA
duplique le TOSAA
roule le TOS vers le basNous poussons chaque lettre avec des applications successives de ces opérations.
la source
Glypho , 480 octets
Essayez-le en ligne!
la source
Headsecks , 78 octets
la source
Double JavaScript, 318 octets
Je ne sais pas si c'est autorisé, je n'ai pas pu le faire en utilisant l'interpréteur JavaScript une fois. Il est similaire à utiliser,
eval()
mais j'utilise à la place l'interpréteur deux fois: (Essayez-le dans la console pour obtenir le résultat imprimé)Essayez-le en ligne!
Évalue à:
Essayez-le en ligne!
Qui évalue à
Hello, World!
la source
Smallf ** k , 266 octets:
En fait, les personnages sont un peu hors de propos. C'est juste une question de savoir si chaque personnage a ou non un point de code pair ou un point de code impair. Ainsi, j'ai fait un effort pour utiliser tous les caractères disponibles (sauf les caractères multi-octets) (bien que comme il a été randomisé, je n'ai pas fait d'effort pour le garantir).
la source
ord
et 0 pour pairord
), vous pouvez donc dire que c'est 33,25 octets xD'5'
occupe par exemple le point de code de regular'A'
, vous n'êtes pas autorisé à l'utiliser'5'
.Pyke ,
133144 octetsEssayez-le en ligne!
Un horrible gâchis de code qui peut presque certainement être raccourci ... Le construit un caractère à la fois.
la source
dc ,
164162 octetsEssayez-le en ligne!
Il y a probablement une approche meilleure / plus intéressante. J'ai essayé d'utiliser l'astuce ASCII + 256 qui
dc
a, mais qui génère également des caractères supplémentaires (même s'ils ne sont pas en cours d'impression), et une fois arrivé à `` o '', le 111 merveilleusement premier, j'ai eu du mal à obtenir un valeur de 111+ (multiple de 256) qui a pris en compte proprement. Voici donc une solution assez simple (bien que jouée au golf si possible):Dans
dc
,z
est une commande qui pousse la profondeur de pile sur la pile. Cela signifie que nous pouvons l'utiliser comme incrément. C'est ainsi que je crée la plupart de mes valeurs ASCII pour ce défi (imprimé avecP
), que je pousse sur les piles nommées avecS
et remonte sur la pile principale avecL
.dc
vous permet d'utiliser les valeurs hexadécimales AF même lorsque le radix d'entrée est décimal (par défaut).Heureusement, notre première lettre, 72, est un multiple de 12, donc j'économise un octet ou deux ici en multipliant 6 * 12 et en imprimant immédiatement (Ma version de 164 octets a utilisé la multiplication dès le début pour obtenir 72 ('H'), ce qui était légèrement intelligent, mais un maintien d'une tentative précédente et un gaspillage d'octets. Maintenant, je commence par incrémenter et enregistrer l'espace, le point d'exclamation et la virgule, qui sont hors service et ne peuvent donc pas encore être imprimés. Ensuite, j'arrive au «H», que j'imprime immédiatement, avant d'arriver au «W», que je dois conserver pour plus tard.zzzzzzzC*P
).J'imprime simplement lorsque je frappe le «e», puis j'augmente jusqu'à «l». J'en imprime deux et j'en sauvegarde une. Quand je fais à « o », j'ai pensé que je devais sauver un de ceux pour plus tard, mais tout est genre de pour à ce stade. J'imprime un «o», récupère ma virgule, mon espace et mon «W» de tout à l'heure, et maintenant je reviens à «o». J'imprime ceci et j'en incrémente quelques-uns jusqu'à la valeur nécessaire la plus élevée, «r» (114), que j'imprime avant de charger et d'imprimer le «l» que j'ai replié plus tôt.
Presque fini! 'd' est la valeur ASCII 100, qui se fait facilement en multipliant 10 * 10 (moins d'octets que de l'avoir stocké plus tôt et de le charger maintenant). La valeur hexadécimale
A
est de 10, tout comme notre base d'entrée que nous pouvons récupérer avec la commandeI
. Multipliez-les, imprimez, puis chargez et imprimez notre point d'exclamation antérieur. Bonjour le monde!la source