Dans une langue de votre choix, écrivez un programme qui affiche exactement les caractères Hello world!
suivis d’une nouvelle ligne. Le code:
- ne doit utiliser aucun caractère plus de deux fois (alphanumérique, symbole, espace, etc.)
- ne devrait utiliser aucune ressource externe
- ne devrait utiliser aucune entrée d'utilisateur
- ne devrait rien sortir d'autre
Un exemple de programme python valide:
print("He%so world!"%(2*'l'))
Exemple de programme python non valide (le caractère 'r' est utilisé trois fois):
print("Hel"+chr(108)+'o world!')
Le gagnant est celui qui a le plus de votes après 14 jours.
EDIT: Un gagnant a été choisi! Merci à tous pour votre travail sur cette question!
Réponses:
Rubis (1.9+)
Comme il s’agit d’un concours de popularité, essayons de ne pas utiliser AUCUN des personnages de "Hello world!" tout en utilisant d’autres caractères au maximum deux fois:
Il fait 40 caractères.
Frapper
Et celui-ci utilise la magie Unicode.
Remarques:
Code:
Pour ceux qui ne disposent pas d'une police appropriée, cela ressemble à ceci:
Voici l'hexdump:
Vous devez l'exécuter sur une machine où le jeu de caractères par défaut est utf-8. J'ai essayé sur un OSX10.8 en utilisant iTerm2 avec l'environnement suivant:
PHP 5.4
Cela utilise zLib: (malheureusement, il utilise les caractères
e
eto
)Hexdump:
+1
Voici le code ruby 2.0 que j'ai utilisé pour tester les doublons:
la source
Hello world!
suivis d’une nouvelle ligne"ascii//translit
va translittérer les caractères unicode en ascii de base. Et bien sûr, echo ajoutera la nouvelle ligne, donc celle-ci correspond à la spécification (si nous ne considérons pas la similitude des octets)Hello World?
au lieu deHello World!
Vous devez utiliser des langages plus expressifs.
Chinois,
6 43 caractèresL'exécution de Google Translate sur cette produit
Hello world!
(merci @servoir et @Quincunx pour la mise à jour)
la source
你好世!
喂世!
au détriment de ... eh bien, rien d’autre n’est réellement dépensé.HQ9 +, 1 caractère
garder les choses simples :)
la source
print Hello World
questions sont réellement deswho can submit a HQ9+ answer faster
questions.C, 192 caractères
Comme ce n'est pas du golf, j'ai décidé de m'amuser et d'essayer d'utiliser chaque personnage exactement deux fois (tout en mettant le moins possible dans un commentaire, car c'est ennuyeux). Je me rends compte que je ne me débrouille pas très bien, car mon code contient également une tonne de code "mort" ennuyeux (pas au sens littéral, mais au sens des caractères de substitution utilisés pour satisfaire à l'exigence). Quoi qu'il en soit, c'était étonnamment difficile (mais amusant) avec la limitation à deux caractères, donc malheureusement, je ne pouvais rien proposer de plus intéressant. Cela m'a néanmoins donné une idée d'un nouveau problème ...
(Mis à jour par le commentaire de @ ugoren.)
la source
.
en l’utilisant pour des fractions. Aussi, vous pouvez déclarer un tableau et l'utiliser[]
..
; Je pensais seulement à l'utiliser pour un accès struct. <s> En ce qui concerne les déclarations de tableau, je ne suis plus en,
s à cause de l'printf
appel, mais je ne suis pas non plus en;
s, alors je ne sais pas comment je pourrais en déclarer une. </ s> Duh, je pourrais remplacerATION_
. ..Commande Vim (18 frappes)
iHe
Esc3al
Escio Wor
Rightd!
EnterNe répète aucune frappe plus de deux fois.
Cela enfreint un peu la règle de "saisie utilisateur" car c’est toujours l’utilisateur qui doit saisir cette séquence, mais je suppose que si vous la stockez au préalable sous forme de macro ou de nnoremap, cela compterait, car vous ne l’exécutez que de manière explicite. entrée pour y arriver.
Cela nécessite également
nocompatible
d'être défini, ce qui peut compter comme utilisant des ressources externes, j'ai donc fourni une autre variante ci-dessous:Commande Vim (21 frappes)
iHe
Esc3al
Escio Wor
Ctrl+[$ad!
EnterCette variation n’a pas besoin
nocompatible
d’être définie, bien qu’elle utilise Esctrois fois son utilisation Ctrl+[à la place.la source
Right
,Esc
etEnter
, ils ne sont pas littéralement ces personnages. Vim traite les frappes au clavier, que je considère équivalentes aux personnages pour les besoins de ce concours (et la règle "ne répétez pas plus de deux fois"). Je n'utilise que lai
frappe deux fois et la<Right>
frappe une fois. En ceE
qui me concerne , je ne l'utilise jamais du tout - mais je l'utilise<Esc>
deux fois et<Enter>
une fois.l
secondes.:set nocompatible
.Right
pas très vim-y.Piet-- Pas de caractères que ce soit!
la source
Perl, 29 caractères
Cette réponse comprend les sabots notés x!
Perl, 23 caractères
Plus court, mais pas de chaussures porno. :-( Même idée de base cependant ...
Perl, 20 caractères
Ennuyeuse...
la source
Powershell, 20 ans
la source
Sclipting , 11 caractères
J'ai vu ce beau programme HelloWorld sur la liste du programme Hello World d'esolang .
la source
Scala:
3429 caractèresJe suis fier de moi pour celui-ci:
J'ai eu beaucoup de difficulté à surmonter les doublons, les guillemets et les crochets. Ensuite, j'ai découvert l'ancienne
printf
fonction Java , qui convertira volontiers les chiffres en lettres lorsque le%c
spécificateur de format lui est attribué .Mise à jour
MrWonderful a fait une chose merveilleuse en soulignant que beaucoup de personnages peuvent être sauvegardés en utilisant mon second 'l' manuellement dans la chaîne!
la source
printf
contient unr
comme faitworld
. Il en va de même pour la lettreo
qui est utilisée plus d'une fois. Ceci est basé sur mon interprétation de la déclaration suivante de l'OP "Un exemple de programme python non valide (le caractère 'r' est utilisé trois fois):print("Hel"+chr(108)+'o world!')
"chr
Python 3 [38 octets]
Je ne considérerais pas
import __hello__
comme une ressource externe.la source
Perl: 34 caractères
Échantillon échantillon:
(Pas un gros problème. Posté juste pour utiliser au moins une fois dans ma vie
s///
avec ces délimiteurs de fantaisie.)la source
PHP, 33 caractères
J'adore combien PHP pardonne et comprend!
Avant qu'il ne soit supprimé (ou s'il est toujours là, je suis totalement aveugle), j'ai vu un commentaire disant "Pas de brainf * ck?: D". Comme vous le savez, il est pratiquement impossible d'écrire une solution dans BrainF * ck. Mais j'ai réussi à coder ceci, juste pour le lulz.
Si vous n'avez pas d'interpréteur BF, le code ci-dessus n'imprime que celui en PHP: P
la source
Hel
n'est pas entourée de guillemets. Aussi, je n'ai jamais entendu parlerstr_rot13
auparavant..
) en plaçant le symboleHel
avant le<?=
.Hel<?=str_rot13("yb jbe")?>ld!
Violon HTML - 21 caractères
la source
\n
donc je dirais que ça<br>
compter
est répété dans la solution. Ai-je mal interprété les exigences?Ruby: 27 caractères
Échantillon échantillon:
Ruby: 25 caractères
(Basé sur le commentaire de Vache.)
Ruby: 23 caractères
(Copie de la réponse Powershell de Danko Durbić .)
la source
puts 'He'+'l'*2+'o world!'
est un personnage plus court!puts"He#{?l*2}o world!"
p
inclut des guillemets dans la sortie. Je préfère rester strictement avec le format de sortie requis. Mais vous avez raison, l'espace n'est pas nécessaire. Je vous remercie.JavaScript, 66 caractères
Inspiré par FireFly, chaque caractère utilisé par ce code est utilisé exactement deux fois.
la source
C - 43 personnages
Sortie
Compte de personnages
la source
main
etc?i
).JavaScript [37 octets]
Trop primitif n'est-ce pas?
la source
nginx.conf
En action:
la source
set
. Cela a seulement 3 espaces maintenant, chacun d'entre eux pourrait être un onglet!Emacs Command (15 frappes)
Si ce que vim répond est légal, alors ça doit l'être aussi :)
Blague à part, la macro peut devenir trop :)
Autre bêtise à part, je peux probablement en presser un peu plus, mais cela semble être suffisant pour le moment (car il bat vim).
PS, s'il vous plaît, ignorez toutes mes bêtises (j'utilise rarement (mais rarement) vim aussi!).
la source
Befunge 98
Voici une version où chaque personnage apparaît deux fois.
Laisse un tas de bric-à-brac sur la pile.
En prime, chaque personnage a quelque chose à faire avec l'IP.
la source
Malbolge
la source
Hello, world.
place deHello world!\n
:( Essayez-le en ligne! Impressionnant, mais invalide.En fait je n'aime pas tricher: P
Python
la source
TypeError
.print("!dlrow os%eH"[::-1]%('l'*2))
fonctionne dans les deux versions (Python2 et Py3K).GolfScript
Substitue deux nouvelles lignes (heureusement la troisième, nécessaire à la substitution, est fournie par la fonction intégrée
n
), en utilisant les deux types de littéral chaîne pour éviter les copies en quatre exemplaires d'un guillemet. Commel
c'est le seul caractère qui apparaît plus de deux fois dans la chaîne d'origine, ce n'est pas trop difficile.la source
o
. Les règles disent qu'il n'est pas permis d'avoir un personnage plus de deux fois .Hmm.
En C, étant donné ces règles, nous ne pouvons avoir qu'un seul
#define
(à cause dei
etn
) et au plus deux appels de fonction OU définitions ((
et)
).Je présume qu'il n'y a quasiment qu'une seule façon de le faire (même si je me trompe probablement):
la source
puts()
au lieu deprintf()
.o
dansworld
?FRAPPER
CRED @manatwork
la source
-e
en utilisant la spéciale$'…'
syntaxe:echo $'Hel\x6c\x6f world!'
.C - 46 personnages
main(){printf("He%clo wor%cd!\x0d",'l',108);}
Imprime:
la source
main(){printf("He%clo world!%c",108,10);}
devriez travailler et vous épargner quelques caractères.Fugue
Depuis le wiki esolang:
Et vous pouvez écouter le code source .
la source
PHP
32 caractères
Notez que je n'utilise pas un caractère plus de deux fois, car l! = L
Notez également que, malgré l’effacement de Stack Overflow dans la représentation, il y a un saut de ligne après le
!
.la source
XQuery, 19 caractères
la source