En Kısa Sıralı Merhaba Dünya


27

Giriş Hello, World!yapamayan ve stdout'a veya dilinizin en yakın alternatifi olan bir program yazın . Yakalama, programınızdaki her satırın yalnızca yazdırılabilir ASCII karakterleri içermesi ve sıralı, sıralı bir sıralama şeklinde olması gerektiğidir.

Sırayla, yazdırılabilir 95 ASCII karakterinin tümü:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Bu nedenle, örneğin, satır !!A0~geçersiz olur Ave 0sıra dışıdır. Satır !!0A~geçerli olur.

Programınızdaki her satır herhangi bir uzunlukta olabilir ve herhangi bir sayıda satır olabilir. Boş satırlar sıralanmış olarak kabul edilir. Programınızdaki yeni satırların her biri aynı olmalıdır (karıştırma \nve karıştırma \r\n). Sekmeler ve yazdırılamayan diğer ASCII karakterleri yasaktır.

Nedeniyle için yoğun talep , kazanma koşulu etrafında geçildi:
en az olan teslim hatları kazanır. Tiebreaker en kısa programa gider (yeni satırlar tek karakter olarak sayılır).

Yalnızca Hello, World!ve isteğe bağlı bir izleyen satırsonu çıkarılmalıdır. HQ9 + ' ın çıkıştan bu yana geçersiz olduğunu unutmayın hello, world. HQ9 + 'ya benzer bir karaktere sahip olan "Merhaba, Dünya!" Karakterlerini yasaklayabilirim. önemsizlikleri nedeniyle komutlar.

İpucu:

Bu kesinlikle mümkün tekli ve yüksek oranlarda konuşma olmasa çok kısaca.


7
Şimdi biraz geç oldu, ama bir şekilde en az satır gibi hissediyorum o zaman en az bayt daha ilginç olabilirdi ...
Sp3000

6
@ Sp3000 Birleşik bir ölçüme ihtiyacımız var, aksi takdirde Unary ve Lenguage yalnızca 1 astarın rekabet edebileceği anlamına gelirdi.
isaacg,

@ Sp3000 Belki, sadece Unary / Lenguage’ın kazanmasının muhtemel olmadığından emin olmak istedim. Yine de değiştirmeye açığım (üzgünüm isaacg). Kabul ediyorsan, Sp'in yorumuna oy ver.
Calvin'in Hobileri

@ Sp3000 Tavsiyenizi aldım. Güncellemelere bakınız.
Calvin'in Hobileri

Sipariş tersine çevrilebilir mi? Örneğin, soldan sağa okuma?
Ismael Miguel,

Yanıtlar:


17

Headsecks , 1 satır, 366 bayt

                                                                        $(((((((((((((((((((((((((((((,000000044888<AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIIIIIIIIIIIILPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTXXXXXXXXXXXXXXXXXXXXXXXX\```diiiiiilqqqqqqqqtyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|

Headsecks, önem taşıyan tek şeyin modulo 8 kod noktası olduğu önemsiz bir Brainfuck ikamesidir. Eşdeğer Brainfuck sadece

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------.------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.-------------------------------------------------------------------.

Neyse ki bu saf yaklaşım sadece uyuyor. Baytlarda golf oynamak için bazı potansiyeller var ama zor olabilir.

Bu Python yorumlayıcısı kullanılarak test edilmiştir .


Kod oluşturma

code = "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------.------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.-------------------------------------------------------------------."
command_map = "+-<>.,[]"

last_point = 32
out = []

for char in code:
    curr_mod = command_map.index(char)
    last_mod = last_point % 8

    if curr_mod > last_mod:
        last_point += curr_mod - last_mod

    elif curr_mod < last_mod:
        last_point += (8 - last_mod) + curr_mod

    out.append(chr(last_point))

print("".join(out))

Zekiydi! +1
theonlygusti

Daha kısa bir BF programı kullanabilir misiniz, yoksa program bir sebep için özel bir yol oluşturuyor mu? Jeneratörünüzde kullandığım BF programımı denedim ama çıktıda unicode vardı.
mbomb007

1
Ben yeni karakter tanıtmak için yeterli esneklik payı var sanmıyorum kısa BF programları ile @ mbomb007 sorun ..., kod noktasında 124 o bile bu naif yöntem uçları olan
SP3000

30

/// , 7 satır, 22 bayt

/
//Hello
,
 Wor
l
d
!

/// rekabet edebilmek için nadir bir şans (hiç kimse Unary ve Lenguage ile başlamadığı sürece ...).

Kod önce a ile karşılaşır /ve ayrıştırır.

/
//

Programın geri kalanından tüm yeni satırları kaldıran bir değiştirme talimatı olarak. Daha sonra, program sadece okur

Hello, World!

daha fazla eğik çizgi içermediğinden sözlü basılmıştır.


19
URL’lerin arka arkaya bu kadar eğik çizgi içerebileceğini bile bilmiyordum.
Alex A.

4
@AlexA. Bu URL'nin çalışmasını sağlamak aylar sürdü, IIRC. Sunucu yapılandırması ve MediaWiki yapılandırmasındaki değişikliklerle başa çıkmak için makaleyi yeniden adlandırmaya devam ettik.

17

JavaScript (67 66 62 satır, 227 269 ​​bayt)

(Not: Yalnızca Firefox 36 ve Safari 8'de test edilmiştir, küçük ES6 özellikleri içerir ( Setsınıf))

Z
=
!""+
(0[[]]
+
(
!!""+Set
));c
=Z[~
-22]
$=Z[
3]
$$=Z[
15]
$$$=Z[
24]
$$$$=Z[
1]
$$$$$=Z[
0]
Set
[c
+
$$$+Z[
5]
+Z[
16]
+
$$$$$+
$$$$+Z[
2]
+c
+
$$$$$+
$$$+
$$$$]
(Z[
14]
+
$$+
$+
$$$$+
$$$$$+
"(\
'H\
"+
$+
$$+
$$+
$$$+
",\
 W\
"+
$$$+
$$$$+
$$+Z[
6]
+
"\
!')\
")
()

Yukarıdaki kod temelde şunları yapar:

alert("Hello, World!")

Açıkçası alertsıralanmamış. Bunun yerine, ifadeyi bir dizge olarak oluşturmamız ve “değerlendirmemiz” gerekir:

s = "alert('Hello, World!')";   // generate this using sorted code
eval(s)

Dize nasıl oluşturulur? ES5, satırın devamını destekler;

"AL\
ERT" === "ALERT"

Ancak karakter kodu tüm küçük harflerden önce\ görünür , bu nedenle diğer yöntemleri kullanarak küçük harfleri oluşturmamız gerekir.

Burada bazı JSFuck fikirlerini ödünç alıyoruz . Uyarı ifadelerinde yer alan küçük harfler:

t e r a o l d

Bunların tümü, bazı sıralama dizileriyle ifade edilebilen standart nesnelerin karakterlerinden elde edilebilir:

t, e, r ← true      = !""
a, l    ← false     = !!""
o       ← function  = Set
d       ← undefined = 0[[]]

Dizeyi nasıl değerlendiriyoruz? Tabii eval(s)sıralanmadığı için kullanamayız. Alternatif olarak kullanabiliriz Function(s)(), ancak Functionsıralanmadığı için kullanamayız. Ancak, Functiontüm işlevlerin yapıcısı, yani Set.constructor === Function.

Tanımlayıcı eklemek, constructorküçük harflerin listesini olur:

t e r a o l d c u n s

Neyse ki hala tarafından üretilebilir "truefalseundefinedfunction":

t, e, r, u ← true      = !""
a, l, s    ← false     = !!""
o, c, n    ← function  = Set
d          ← undefined = 0[[]]

Güzelleştirmeden sonra, yukarıdaki kod şöyle okunmalıdır:

// lines 1~8 defines our string containing all lowercase letters we want
Z = true + (undefined + (false + Set))
// Z = "trueundefinedfalsefunction Set() { [native code] }"

// lines 8~20 defines the variables `c`, `$` (e), `$$` (l), `$$$` (o), 
// `$$$$` (r), `$$$$$` (t)
// for the corresponding lowercase letters extracted from `Z`

// the rest calls:
Set["constructor"]("alert('Hello, World')")()
// lines 22~36 generates the "constructor" string
// lines 37~61 generates the "alert('Hello, World')" string

Güncelleme: Yeniden adlandırılmış E, L, O, R, Tçeşitli tekrarına $4 satır azaltmak için.


2
Kesinlikle harika! Python'da aynı stratejiyi kullanmanın mümkün olup olmadığını bilmiyorum (büyük / küçük harf duyarlı).
mbomb007

Çok hoş! İki yerine sadece bir satır sonu gerektirecek =Z[3*7]şekilde yazılabileceğini unutmayın =Z[~-22].
ben ve kedim

@ mbomb007 Evet, ama boşluklar ve ilk önce ASCII setinde yer alıyorlar ...
Harry Beadle

@meandmycat Teşekkürler! Güncellenmiş.
kennytm

13

Uykusuzluk , 4 satır, 59 bayt

 FFFFGjnnnnooty
FLLddeejkopqyyyyy~~
(<ddjnoppppqrtu
<<Fddfj

Bu program satır sayımı için optimize edilerek oluşturulmuştur.

10 satır, 43 bayt

(u
pt
(dppty
p~
j
<Fptt{
(otz
?o
FLu
<?FFu~

Bu yukarıdaki program bayt sayımı için optimize edilerek üretilmiştir.


11

Cygwin bash, 16 satır, 60 bayt

Bu, yalnızca Windows'ta büyük / küçük harfe duyarlı olmayan dosya adı ve Cygwin'in yardımcı programları büyük / küçük harfe duyarsız bulması nedeniyle çalışır.

A\
=Hello
A\
+=\
",
"Wor
A\
+=l
A\
+=d
A\
+=\
!
E\
CHO\
 $A

ECHOSonunda bunu not al .


Bunun 17 veya 16 satır olup olmadığından emin değilim (en sonunda yeni bir satır var), ancak her iki durumda da, bu hiçbir şeyi kazanamayacak.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

10 galibiyet kazandınız, bu zaten çok fazla. En çok oylananlar (şu an itibariyle) 12 oy hakkına sahiptir! Ve 23/24 oy ile /// çözüm.
Ismael Miguel

11

> <> , 6 satır, 111 bayt

  """""""/;;Hello
        &\o
      &++\oooo~~
"++++++++\bbbdlr
    +++++\ccccccccfooo}
    $++66\cfffffooooopr

Ekstra bir hatla golf oynamakta zorlanıyorum, ancak her durumda 7 hatlı yöntemi yendiğim için mutluyum.

açıklama

> <> talimatların tek karakter olduğu ve program akışının yukarı, aşağı, sola veya sağa gelebileceği yığın tabanlı bir 2D dilidir. "Talimat bir kapanış kadar karakter iterek dize ayrıştırma değiştirir "karşılanmaktadır, fakat doğası> <> CJam en dizeleri veya Python'un üçlü tırnakla gibi "çok hatlı dize ayrıştırma" diye bir şey yoktur. Bu büyük bir sorun olarak ortaya çıktı çünkü a ile bir çizginin başlaması ve bitmesi "ve (örn. "some chars") Arasında başka karakterlerin bulunmasına izin verilmiyor!

Buna dikkat edin /ve \program akışını yansıtın, bu yüzden ilk satırın ardından tüm satırları ters sırada uygularız ve çoğu satır gerçekte geriye doğru yürütülür!

[Line 1]

""""""              Three empty strings, push nothing
"/;;Hello  "        Push "/;;Hello  ". Note the wrapping - ><> is toroidal!
""""""              Three empty strings, push nothing

[Line 6]
66++$               Turn the top " " into "," by adding 12, then swap top two
rp                  Reverse stack and pop top 3
ooooo               Print "Hello", stack is now " ,"
fffffc              Push some 15s and a 12

[Line 5]
+++++               Sum the 15s and 12 to give 87, or "W"
}ooo                Move "W" to the back and output ", W"
fcccccccc           Push a 15 and some 12s

[Line 4]
++++++++            Sum the 15 and 12s to give 111, or "o"
"rldbbb\++++++++"   Push chars to stack
r                   Reverse stack
ld                  Push length of stack and 13, not used
bbb                 Push three 11s

[Line 3]
++&                 Sum the 11s to give 33, or "!" and put in register
~~                  Pop top two
oooo                Print "orld"

[Line 2]
&                   Put "!" from register to stack
o                   Print "!"

[Line 1]
;                   Terminate

Bir yandan notta, işte <>> en az bayt (23 satır, 47 bayt):

v
"
!
d
l
r
o
W

,
o
l
l
e
H
"
/<
l
?
!
;
o
\^

2
İkinci kodda dikey sarmalama sayesinde 2 bayt
kazanabilirsiniz

10

CJam, 5 4 satır, 162 bayt

"Hello
")))))))))))))))))))))))))))))))))))68S\cel
"Wor
")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@SX\c|

Uykusuzluk ile aynı sayıda çizgi! (ama çok daha fazla bayt)

Çevrimiçi deneyin .

açıklama

"Hello\n"        Push "Hello" and a newline
)                Uncons the newline
)))...)))        Increment the newline into a ","
68S\             Push 68 and a space then swap, leaving 68 on top
c                Convert 68 into a char "D"
el               Lowercase "D" into "d"
"Wor\n"          Push "Wor" and a newline
)                Uncons the newline
)))...)))        Increment the newline into an "l"
@                Rotate top three elements, moving the "d" to the top
SX\              Push a space and 1 then swap, leaving the space on top
c                Convert the space (which is an array) into a char
|                Bitwise or the space (32) with 1 to give "!" (33)    

CJam daha sonra yığını otomatik olarak yazdırır.

Bana işe Scyaradığını hatırlattığımız için @Optimizer sayesinde , aksi takdirde SX|başarısız olur (bir set veya bunun yerine, boşluk ve 1'den oluşan diziyi verir).


8

> <> (Balık) , 5 satır, birçok bayt

Kod son derece uzun, söylediğimde [6535529689086686142930090 '+' signs]ve [6535529689086686142930090 'd' characters]kodun ilk satırında, 6535529689086686142930090arka arkaya kelimenin tam anlamıyla artı işaretler var demek istiyorum !

(Ve aşağıdaki satırlar için gerekli önek boşluklarını ekleyin.)

'[6535529689086686142930090 '+' signs]^`[6535529689086686142930090 'd' characters]
                                   **,/288
                                     -/:o
                             %**288:;?\
                                   (1:\

Yalnızca baskı yapan daha kısa bir test edilebilir alternatif Hi:

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++^`hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
                                                                                                                               **,/288
                                                                                                                                 -/:o
                                                                                                                         %**288:;?\
                                                                                                                               (1:\

Yöntem:

  • İlk satırda base128'deki dizgeyi temsil eden büyük bir sayı yarattık.
  • Satırların geri kalanında (aşağıdan yukarıya doğru) her döngüde tamsayı değeri 0 olana kadar aşağıdaki karakteri yazdırırız.
  • Döngü kodudur :1(?;:882**%:o-288**,.

(Bu yöntemle isteğe bağlı 2+ karakter uzun dize yazdırabiliriz.)


Geçerli bir çözüm değil; 6535529689086686142930090 sipariş edilmedi.
theonlygusti

@ theonlygusti "Kod son derece uzun, yorumlu [6535529689086686142930090 '+' signs]ve [6535529689086686142930090 'd' characters]kelimenin tam anlamıyla kodun ilk satırında." (Eğer demek istediğim ne anlama geliyorsa, ikinci kod parçasını kontrol edin.)
randomra

Tamam! Üzgünüm, aptal ben: PI tam anlamıyla aldı.
theonlygusti

2
Boyut 13 YB, İnternet boyutunun kabaca 1000 katı.
Charles

@Charles Ikinci satırları dahil ~ 40YB olsun.
Veedrac

8

PHP (7/17 satır, 36/59 bayt):

Geçersiz cevap miktarı nedeniyle bu cevabı tekrar yazdım.

Tarayıcı sürümü? Gone.

Fakat her ikisi de PHP'de bitsel xor( ^) dizgelere dayanan 2 çözümüm var .

Bu son derece güçlü bir çözüm! Bazen bol miktarda bayt tasarrufu sağlar.

İlk önce en kısa cevap:

Echo
Hello
,AM^mm
,Wor
,OOO^
"#+n
";

Biliyorum, berbat görünüyor, ama işe yarıyor!

Bir sonraki yeni satırlara bağlıdır.

Evet, yeni satırları kullanıyor ( \n/ UNIX stili gerekli)!

Echo
Bo
.ff
.e
.
"&*]ex
fn
"^
"\n
\n
\n
\n
\n
\n
\n
",B^c
;

Bunun için yeni hatların çalışması gerekiyor.

Mükemmel değil ama işe yarıyor!


Her iki cevaplar dayandığını MartinBüttner @ 'in çözümü :

Echo
Hello
.
chr
(44
).
chr
(29
+3
).Wor
.l
.d
."!
";

Tüm hatalarımı tespit etmek ve önerileri için @ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ , @CJDennis , @ MartinBüttner ve @skagedal'a özel bir teşekkür .


1
Tarayıcıdaki çıktı Hello , Wor l d !. Fazladan boşluklara dikkat edin! Bu maalesef geçerli bir cevap değil.
CJ Dennis

1
Windows XP'de Firefox 36, IE 8, Opera 12.17 ve Opera 28'de (Chromium) test edilmiştir. Hepsi aynı çıktı. Herhangi bir sayıda boşluk karakteri tek bir boşluk karakteri olarak işlendiğinden (ara boşluk bırakmadan vb.) Her yeni satır bir alana dönüştürülür. Herhangi bir tarayıcının çıktınızı boşluksuz hale getirip getirmediğini bilmek isterim!
CJ Dennis

1
Dilin güzel suistimali! Teknik olarak ürettiği hatalar stderr'e gider ve stdout'a değil, benim durumumda tarayıcımda çok fazla hata görsem bile kodunuz şimdi geçerli! Ve, inanılmaz derecede titiz, PHP kurulumumun kısa etiketleri kaldı, bu yüzden bilgisayarımdaki ilk satır <?phpgeçersiz! Ancak, bunun için seni affedeceğim! Tamam, <?Phphangisinin işe yaradığını test ettim, bu yüzden start etiketinin büyük / küçük harf duyarlı olmadığını öğrendim!
CJ Dennis

1
Bu cevaptaki ilk iki çözüm kurallara uymuyor. En üst satırda 8 numaralı satır vardır. "!<br- bu sıralanmamıştır. İkincisi, satır 10 olarak var: ."!- sıralanmamış.
skagedal

1
@IsmaelMiguel Üzgünüm ama hayır. İlk önerideki 7. satır sıralanmamıştır. İkinci önerideki 5. ve 7. satırlar sıralanmamıştır.
skagedal

7

Pyth, 7 satır, 23 bayt

-
"Hello
,
 Wor
l
d
!"b

Oldukça basit, sadece çok satırlı bir dize kullanın ve yeni satırları kaldırın.

Burada dene.


@orlp Birkaç gün önce çok satırlı dizeler ekledim ve Pyth yıllardır girişteki yeni satırları destekledi. Bu, çoklu satır modunu hiç kullanmaz. Kesinlikle multiline modu olmayan çevrimiçi derleyicide deneyin.
isaacg,

2
Neredeyse CJam'da da aynı, aynı byte sayısı da aynı.
Doktor

4

İleri, 41 satır, 143 bayt

Çevrimiçi deneyin.

Bununla çok gurur duyuyorum. Google'ın büyük / küçük harfe duyarlı olmayan dilleri aramasını sağladığımı öğrendikten sonra çok hızlı bir şekilde çırptım ve Forth'u dürüstçe tanıyorum. Hem bayt hem de satır olarak neredeyse kesinlikle kısaltılabilir. Öneriler takdir edilmektedir. : D

Bu program aslında her ASCII karakterinin ondalık değerini iterek her birini yazdırır. Yazarken optimize etmeye çalıştım, bu yüzden istediğimden daha az okunabilir.

33
99
1
+
DUp
8
+
2DUp
6
+
SWap
11
+
2OVer
SWap
8
9
*
EMit
1
+
EMit
DUp
DUp
EMit
EMit
3
+
EMit
29
3
2DUp
+
EMit
*
EMit
EMit
EMit
EMit
EMit
EMit

EmitOlarak çizgiler, işe yaramaz i(105) az olduğu m(109).
bcsb1001

Öyleyse "EMit" olmalı?
skagedal

4

Mermer, 9 satır, 94 bayt

3333
    @ADD
    358C
++--29\\
++--3555DE
<<<<<<>>~~
+++++446666D
++++++++../\
      ++------

Burada çevrimiçi sınayın. Using spaces for blank cellskontrol edilmeli.

Kaynağın görsel temsili:

Yukarıdaki kaynağın görsel gösterimi

Açıklama: Bu programdaki her onaltılık değer, her "tik" de aşağı doğru hareket eder (açık değilse \\, bu durumda sağa doğru hareket eder). ++değeri artıracak, azaltacak --, ~~bitsel olarak uygulayamayacaksınız, vb. alttan düşen değerler ASCII karakteri olarak yazdırılır.

Örneğin: 33Üst köşede olur (((0x33 +1 +1) << 1) +1 +1 = 0x6C (l).


2

Perl, 17 satır

$_
=
'pr
int
"Hello
,
 Wor
l
d
!"';s
!
!!g
;s
!.
*
!$&
!eex

2

Rebol - 15 satır (51 bayt)

PRin
AJOin
[
'Hello
Sp 
+
12
Sp
'Wor
'l
'd
Sp
+
1
]

Rebol'a içinde Sözcükler harf duyarsız (örn. PRINT, PrintVe printhepsi aynı işlevi çağırır).

Yukarıdaki kod toplandı:

prin ajoin [
    'Hello  sp + 12  sp  'Wor  'l  'd  sp + 1
]

NB. spboşluk char döndürür !


Programınız geçersiz, {harflerden önce olamaz.
theonlygusti 28:15

@ theonlygusti - Sabit (9 satırdan 13’e gitti). Bana bir soruna neden olan tek çizgi oldu {,}. Bu şimdi Sp + 12(3 satırdan fazla) + 12 (+ virgül) boşluk karakterine eşdeğerdir
draegtun 29.05

2

Unary , 1 satır, çok fazla bayt

Bu programdaki her karakter 0. Kaynak buraya koymak için çok uzun, ancak bu çok sayıda sıfırdan oluşan bir dizgeden oluşuyor:

327380789025192647555922325233404088310881092761595127419003295178342329930050528932118548

Bu, bu ikili sayının ondalık gösterimidir:

0b1010010010010010010010010110000010010010010110000010010000010010010000010010010000010001001001001011111000010000010000011110001111001011111000000100000011011011100010010010010010010010100100010010010100000000100001011100001100010010010100011011011011011011100011011011011011011011011100000000010100

Bu BrainF *** programından oluşturulmuş olan:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>-[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.

Nasıl ürettiğimi görün: http://ideone.com/lMT40p


2

Toplu İş - 39 Satır (202 bayt)

Düğmeyi cmdkullanarak bir çağrının içindeki kodu çalıştırarak geciktirilmiş genişlemeyi etkinleştirerek boyutu azaltmak istedim /v on, ancak tüm atmaları geçemedi.

@S^
ET^
LO^
C^
AL^
 EN^
ABL^
E^
DEL^
AY^
E^
DEX^
P^
ANS^
IO^
N
@S^
ET^
 0=Hello
@S^
ET^
 1=^
,^
 Wor
@S^
ET^
 2=l
@S^
ET^
 3=d
@E^
CHO^
 !^
0^
!!1^
!!2^
!!3^
!^^^
!

Newlines olmadan (ve newlines'tan kaçmak için karatlar):

@SETLOCAL ENABLEDELAYEDEXPANSION
@SET 0=Hello
@SET 1=, Wor
@SET 2=l
@SET 3=d
@ECHO !0!!1!!2!!3!^^!

1

Ruby, 19 satır, 95 bayt

$;=
$>
$;<<
:Hello
$;<<
44::chr
$.=
33::
-1
$;<<
$.::chr
$;<<
:Wor
$;<<
:l
$;<<
:d
$;<<
33::chr

Muhtemelen Ruby I için ikinci en zor kod kısıtlama ucube sonra, bu sitede gördüğüm burada .

Açıklama için düzenle: Sıralanan tek Ruby çıktı <<yöntemi, STDOUT'daki yöntemdir. Ne yazık ki, STDOUT için sabit $>, >çoğu sembolden daha ASCII'dir ve daha yüksektir, bu nedenle üzerinde bir yöntem çağırmak gerçekten mümkün değildir. Daha izlenebilir bir değişken ismine almak için çok satırlı bir atama deyimine ihtiyacımız var, $;(noktalı virgül hala oldukça yüksek, ancak bu formun değişkenleri atanamazlar veya sadece dizgiler olabilir).

Semboller ( :Wor, vb.) Değişmezi yapmanın en kolay yoludur ve bir dizgiden yeni satırları çıkarmanın bir yolunu göremiyorum, bu yüzden birden çok yazdırma deyimine ihtiyacım var. Boşluk ve noktalama işaretleri bir kelimenin tam anlamıyla sembolize edilemez, ancak neyse ki chrsayılardaki yöntem yasaldır, bu yüzden ASCII değerinden bir karakter alabilirim. ::arama yöntemlerinin alternatif bir yoludur. Uzay çok zor çünkü yazamıyorum 32, bu yüzden 1'den 33'ü çıkarıp değişkene atayım.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.