เรียงลำดับ Hello World สั้นที่สุด


27

เขียนโปรแกรมที่ไม่มีการป้อนข้อมูลและพิมพ์Hello, World!ไปยัง stdout หรือภาษาอื่นที่ใกล้เคียงที่สุดของคุณ สิ่งที่จับได้คือแต่ละบรรทัดในโปรแกรมของคุณจะต้องมีอักขระ ASCII ที่พิมพ์ได้เท่านั้นและต้องเรียงตามลำดับคำโดยย่อ

นี่คือทั้งหมด 95 ตัวอักษร ASCII ที่พิมพ์ได้ตามลำดับ:

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

ตัวอย่างเช่นบรรทัด!!A0~จะไม่ถูกต้องเพราะAและ0ไม่เรียบร้อย บรรทัด!!0A~จะถูกต้อง

แต่ละบรรทัดในโปรแกรมของคุณอาจมีความยาวเท่าใดก็ได้และอาจมีจำนวนบรรทัดเท่าใดก็ได้ บรรทัดว่างถูกพิจารณาว่าเรียงลำดับแล้ว ขึ้นบรรทัดใหม่ในโปรแกรมของคุณจะต้องเหมือนกัน (ไม่มั่วสุม\nและ\r\n) ห้ามใช้แท็บและอักขระ ASCII ที่ไม่สามารถพิมพ์ได้อื่น ๆ

เนื่องจากความต้องการที่นิยมสภาพชนะได้รับการเปลี่ยนรอบ:
การยื่นด้วยน้อยที่สุดเส้นชัยชนะ Tiebreaker ไปที่โปรแกรมที่สั้นที่สุด (ขึ้นบรรทัดใหม่นับเป็นอักขระเดียว)

เฉพาะHello, World!และขึ้นบรรทัดใหม่ต่อท้ายที่เป็นตัวเลือกเท่านั้นที่ควรเป็นเอาต์พุต โปรดทราบว่าHQ9 +hello, worldไม่ถูกต้องเพราะมันเอาท์พุท ฉันอาจห้ามภาษาที่คล้ายกับ HQ9 + ที่มีอักขระหนึ่งตัว "Hello, World!" คำสั่งเนื่องจากเรื่องไม่สำคัญของพวกเขา

คำแนะนำ:

นี่เป็นไปได้อย่างแน่นอนในUnaryและLenguageแม้ว่าจะไม่รัดกุมก็ตาม


7
มันช้าไปหน่อย แต่อย่างใดฉันรู้สึกเหมือนเส้นน้อยที่สุดแล้วไบต์ที่น้อยที่สุดอาจน่าสนใจมากขึ้น ...
Sp3000

6
@ Sp3000 เราต้องมีการวัดรวมกันมิฉะนั้น Unary และ Lenguage จะหมายความว่ามีเพียง 1 liners เท่านั้นที่สามารถแข่งขันได้
isaacg

@ Sp3000 บางทีฉันแค่อยากทำให้แน่ใจว่า Unary / Lenguage ไม่น่าจะชนะ ฉันเปิดให้เปลี่ยนได้ (ขอโทษ isaacg) แสดงความคิดเห็นของ Upvote Sp ถ้าคุณเห็นด้วย
งานอดิเรกของ Calvin

@ Sp3000 ฉันได้รับคำแนะนำของคุณ ดูการปรับปรุง
งานอดิเรกของ Calvin

คำสั่งซื้อสามารถถูกรุกรานได้หรือไม่? ตัวอย่างเช่นการอ่านจากซ้ายไปขวา
Ismael Miguel

คำตอบ:


17

Headsecks , 1 บรรทัด, 366 ไบต์

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

Headsecks เป็นการทดแทน Brainfuck ที่สำคัญสิ่งเดียวที่สำคัญคือโมดูเลดพอยต์ 8. Brainfuck ที่เทียบเท่าเป็นเพียง

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

โชคดีที่นี้วิธีการที่ไร้เดียงสาเพียงพอดี มีความเป็นไปได้บางอย่างสำหรับการเล่นกอล์ฟแบบไบท์ไบต์ แต่อาจเป็นเรื่องยาก

ทดสอบโดยใช้Python interpreterนี้


สร้างรหัส

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))

นั่นฉลาดจัง! +1
theonlygusti

คุณสามารถใช้โปรแกรม BF ที่สั้นกว่านี้หรือโปรแกรมสร้างวิธีเฉพาะด้วยเหตุผลได้หรือไม่? ฉันลองโปรแกรม BF ของฉันที่ฉันใช้ในเครื่องกำเนิดของคุณ แต่เอาท์พุทรวมเอา Unicode บางตัว
mbomb007

1
@ mbomb007 ปัญหาของโปรแกรม BF ที่สั้นกว่าก็คือแม้กระทั่งวิธีไร้เดียงสานี้ก็จบที่ code point 124 ดังนั้นฉันไม่คิดว่าจะมีห้องเลื้อยเพียงพอที่จะแนะนำตัว
ละคร

30

/// , 7 บรรทัด, 22 ไบต์

/
//Hello
,
 Wor
l
d
!

โอกาสที่หายากสำหรับ /// ที่จะแข่งขัน (ตราบใดที่ไม่มีใครเริ่มด้วย Unary และ Lenguage ... )

รหัสแรกพบ/และแยกวิเคราะห์

/
//

เป็นคำสั่งทดแทนซึ่งลบบรรทัดใหม่ทั้งหมดออกจากส่วนที่เหลือของโปรแกรม หลังจากนั้นโปรแกรมจะอ่านเพียงอย่างเดียว

Hello, World!

ซึ่งพิมพ์คำต่อคำเพราะมันไม่มีเครื่องหมายทับอีกต่อไป


19
ฉันไม่ทราบด้วยซ้ำว่า URL อาจมีเครื่องหมายสแลชจำนวนมากติดกัน
Alex A.

4
@AlexA ใช้เวลาหลายเดือนกว่าจะได้ URL นั้นทำงานได้ IIRC เราต้องเปลี่ยนชื่อบทความเพื่อจัดการกับการเปลี่ยนแปลงการกำหนดค่าเซิร์ฟเวอร์และการกำหนดค่า MediaWiki

17

JavaScript (67 66 62 บรรทัด 227 269 ​​ไบต์)

(หมายเหตุ: ทดสอบเฉพาะใน Firefox 36 และ Safari 8 มีคุณสมบัติ ES6 เล็กน้อย ( Setคลาส)

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]
+
"\
!')\
")
()

รหัสข้างต้นโดยทั่วไปจะ:

alert("Hello, World!")

เห็นได้ชัดalertว่าไม่ได้เรียง ดังนั้นเราจึงจำเป็นต้องสร้างคำสั่งเป็นสตริงและ "eval" มัน:

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

จะสร้างสตริงได้อย่างไร? ES5 รองรับความต่อเนื่องของเส้นตรง

"AL\
ERT" === "ALERT"

แต่รหัสตัวละคร\จะปรากฏขึ้นต่อหน้าตัวพิมพ์เล็กทั้งหมดดังนั้นเราต้องสร้างตัวอักษรพิมพ์เล็กโดยใช้วิธีการอื่น

เรายืมความคิดบางอย่างของJSFuckที่นี่ อักษรตัวพิมพ์เล็กที่เกี่ยวข้องในข้อความแจ้งเตือนคือ:

t e r a o l d

สิ่งเหล่านี้สามารถดึงออกมาจากตัวละครของวัตถุมาตรฐานซึ่งอาจแสดงออกมาในรูปของลำดับที่เรียงลำดับบางอย่าง:

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

เราจะประเมินสตริงได้อย่างไร แน่นอนว่าเราไม่สามารถใช้งานได้eval(s)เนื่องจากไม่ได้จัดเรียง อีกวิธีหนึ่งที่เราสามารถใช้Function(s)()แต่เราไม่สามารถใช้Functionเพราะมันไม่ได้เรียงอย่างใดอย่างหนึ่ง แต่เป็นตัวสร้างฟังก์ชั่นทั้งหมดซึ่งหมายถึงFunctionSet.constructor === Function

การเพิ่มตัวระบุconstructorทำให้รายการของตัวอักษรพิมพ์เล็กกลายเป็น:

t e r a o l d c u n s

ซึ่งโชคดีที่ยังสามารถสร้างโดย"truefalseundefinedfunction":

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

หลังจาก prettifying โค้ดด้านบนควรอ่านดังนี้:

// 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

ปรับปรุง: เปลี่ยนชื่อE, L, O, R, Tการทำซ้ำต่างๆของ$เพื่อลด 4 สาย


2
ยอดเยี่ยมอย่างแน่นอน! ฉันแน่ใจว่าไม่รู้ว่าสิ่งนี้เป็นไปได้ที่จะใช้กลยุทธ์เดียวกันใน Python หรือไม่
mbomb007

ดีมาก! โปรดทราบว่า=Z[3*7]สามารถเขียนได้ตาม=Z[~-22]ที่ต้องการเพียงตัวแบ่งบรรทัดเดียวแทนที่จะเป็นสอง
ฉันและแมวของฉัน

@ mbomb007 ใช่ แต่ช่องว่างและพวกเขากำลังเป็นครั้งแรกในชุดแอสกี ...
แฮร์รี่พิธีการ

@ meandmycat ขอบคุณ! Updated
kennytm

13

โรคนอนไม่หลับ 4 เส้น 59 ไบต์

 FFFFGjnnnnooty
FLLddeejkopqyyyyy~~
(<ddjnoppppqrtu
<<Fddfj

โปรแกรมนี้สร้างขึ้นโดยปรับการนับบรรทัดให้เหมาะสม

10 บรรทัด 43 ไบต์

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

โปรแกรมด้านบนนี้สร้างขึ้นโดยการปรับนับไบต์ให้เหมาะสม


11

Cygwin ทุบตี, 16 บรรทัด, 60 ไบต์

กรณีนี้ใช้งานได้เนื่องจากชื่อไฟล์ที่ไม่ตรงตามตัวพิมพ์ใหญ่ - เล็กบน Windows และความจริงที่ว่า Cygwin ค้นหายูทิลิตีตรงตามตัวพิมพ์เล็ก - ใหญ่แม้ว่าคุณจะไม่ได้ตั้งค่าให้จดจำพา ธ แบบตัวพิมพ์ใหญ่ - เล็ก

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

รับทราบว่าECHOในตอนท้าย


ฉันไม่แน่ใจว่านี่คือ 17 หรือ 16 ไลน์ (มีบรรทัดใหม่ที่ส่วนท้ายสุด) แต่อย่างใดนี่จะไม่ชนะอะไรเลย
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

คุณชนะการโหวต 10 ครั้งนั่นเป็นจำนวนมาก คนที่โหวตมากที่สุด (ณ ตอนนี้) มีผู้โหวต 12 คน! และวิธีแก้ปัญหา /// พร้อม 23 upvotes
Ismael Miguel

11

> <> , 6 บรรทัด, 111 ไบต์

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

ฉันมีปัญหาในการตีกอล์ฟเป็นพิเศษ แต่ในกรณีใด ๆ ฉันมีความสุขที่ได้เอาชนะวิธี 7-line

คำอธิบาย

> <> เป็นภาษา 2D ตามสแต็กซึ่งคำแนะนำคือตัวอักษรเดี่ยวและการไหลของโปรแกรมสามารถขึ้นลงซ้ายหรือขวา "คำแนะนำสลับสตริงแยกผลักดันตัวอักษรจนกว่าจะมีการปิด"จะพบ แต่เป็นเพราะธรรมชาติของ> <> ไม่มีสิ่งเช่น "หลายคู่สายสตริงแยก" เช่นเดียวกับสาย CJam หรือ ธ สตริงยกสาม สิ่งนี้กลายเป็นปัญหาใหญ่เพราะไม่อนุญาตให้เริ่มต้นและจบบรรทัดด้วย a "และมีตัวอักษรอื่น ๆ อยู่ระหว่าง (เช่น"some chars")!

โปรดสังเกตว่า/และ\สะท้อนการไหลของโปรแกรมดังนั้นเราจึงดำเนินการบรรทัดแรกตามด้วยบรรทัดทั้งหมดในลำดับย้อนกลับและบรรทัดส่วนใหญ่จะถูกดำเนินการย้อนหลังจริง ๆ !

[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

ในหมายเหตุด้านข้างนี่เป็นความพยายามที่สนุกที่> <> ไบต์น้อยที่สุด (23 บรรทัด 47 ไบต์):

v
"
!
d
l
r
o
W

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

2
ในรหัสที่สองคุณสามารถบันทึก 2 ไบต์ด้วยการล้อมรอบแนวดิ่ง: pastebin.com/heqCr1vJ
Randomra

10

CJam, 5 4 บรรทัด, 162 ไบต์

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

จำนวนบรรทัดเท่ากับ Insomnia! (แต่มากขึ้นไบต์)

ลองมันออนไลน์

คำอธิบาย

"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 พิมพ์สแต็กอัตโนมัติหลังจากนั้น

ขอบคุณ @Optimizer สำหรับเตือนฉันว่าใช้Scงานได้เพราะSX|ไม่เช่นนั้นจะล้มเหลว (เป็น setwise หรือแทนให้อาร์เรย์ประกอบด้วยช่องว่างและ 1)


8

> <> (ปลา) 5 บรรทัดหลายไบต์

รหัสยาวมากเมื่อฉันพูด[6535529689086686142930090 '+' signs]และ[6535529689086686142930090 'd' characters]ในบรรทัดแรกของรหัสฉันหมายความว่ามี6535529689086686142930090เครื่องหมายบวกบวกในแถว!

(และสำหรับบรรทัดต่อไปนี้ให้เพิ่มช่องว่างส่วนนำหน้าที่จำเป็น)

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

ทางเลือกที่ทดสอบได้สั้นลงซึ่งพิมพ์ได้เฉพาะHi:

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

วิธี:

  • ในบรรทัดแรกเราสร้างจำนวนมากแทนสตริงในฐาน 128
  • ในส่วนที่เหลือของบรรทัด (ไปจากล่างขึ้นบน) เราพิมพ์ตัวอักษรต่อไปนี้ในทุกวงจนกว่าค่าของจำนวนเต็มถึง 0
  • :1(?;:882**%:o-288**,รหัสบ่วงคือ

(เราสามารถพิมพ์สตริงที่ยาวกว่า 2+ ตัวอักษรด้วยวิธีนี้)


ไม่ใช่โซลูชันที่ถูกต้อง ไม่มีการสั่งซื้อ 6535529689086686142930090
theonlygusti

@theonlygusti "รหัสยาวมากแปล[6535529689086686142930090 '+' signs]และแปล[6535529689086686142930090 'd' characters]ตามตัวอักษรในบรรทัดแรกของรหัส" (หากไม่มีความชัดเจนว่าผมหมายถึงการตรวจสอบว่าชิ้นที่สองของรหัส.)
randomra

ตกลง! ขออภัยฉันโง่: PI ใช้มันอย่างแท้จริง
theonlygusti

2
ขนาดคือ 13 YB ประมาณ 1,000 เท่าของขนาดอินเทอร์เน็ต
ชาร์ลส์

@ Charles ฉันได้รับ ~ 40YB รวมถึงบรรทัดหลัง
Veedrac

8

PHP (7/17 บรรทัด, 36/59 ไบต์):

เนื่องจากจำนวนของคำตอบที่ไม่ถูกต้องฉันเขียนคำตอบนี้ใหม่

รุ่นของเบราว์เซอร์? ที่ไปแล้ว.

แต่ผมมี 2 การแก้ปัญหาทั้งขึ้นอยู่กับค่าที่เหมาะสมxor( ^) ของสตริงใน PHP

นี่เป็นทางออกที่ทรงพลังอย่างยิ่ง! บางครั้งก็ช่วยให้ประหยัดได้มากไบต์

ก่อนคำตอบที่สั้นที่สุด:

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

ฉันรู้ว่ามันดูน่ากลัว แต่ใช้งานได้!

อันถัดไปขึ้นอยู่กับการขึ้นบรรทัดใหม่

ใช่มันใช้การขึ้นบรรทัดใหม่ ( \nจำเป็นต้องใช้สไตล์ / UNIX)!

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

บรรทัดใหม่ของอันนี้จำเป็นต้องใช้ในการทำงาน

มันไม่สมบูรณ์แบบ แต่ใช้งานได้!


คำตอบทั้งสองอยู่บนพื้นฐาน@ MartinBüttner 's วิธีการแก้ปัญหา :

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

ขอขอบคุณเป็นพิเศษสำหรับ@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ , @CJDennis , @ MartinBüttnerและ@skagedalสำหรับการตรวจสอบข้อผิดพลาดทั้งหมดของฉันและสำหรับคำแนะนำของพวกเขา


1
Hello , Wor l d !การส่งออกในเบราว์เซอร์ หมายเหตุช่องว่างพิเศษ! นี่ไม่ใช่คำตอบที่ถูกต้องน่าเสียดาย
CJ Dennis

1
ทดสอบใน Firefox 36, IE 8, Opera 12.17 และ Opera 28 (Chromium) บน Windows XP แสดงผลทั้งหมดเหมือนกัน เนื่องจากอักขระช่องว่างจำนวนใดถูกสร้างเป็นอักขระเว้นวรรคเดียว (ยกเว้นการเว้นวรรคไม่มีการหยุดพัก ฯลฯ ) แต่ละบรรทัดใหม่จะถูกแปลงเป็นช่องว่าง ฉันจะสนใจที่จะทราบว่าเบราว์เซอร์ใด ๆ ที่แสดงผลของคุณโดยไม่ต้องเว้นวรรค!
CJ Dennis

1
การใช้ภาษาในทางที่ผิด! เนื่องจากข้อผิดพลาดที่สร้างขึ้นในทางเทคนิคไปที่ stderr และไม่ใช่ stdout ตอนนี้รหัสของคุณจะใช้ได้แม้ว่าในกรณีของฉันฉันเห็นข้อผิดพลาดมากมายในเบราว์เซอร์ของฉัน! และด้วยความพิถีพิถันอย่างไม่น่าเชื่อเซ็ตอัพ PHP ของฉันจึงปิดแท็กสั้น ๆ ดังนั้นบรรทัดแรกในคอมพิวเตอร์ของฉัน<?phpซึ่งไม่ถูกต้อง! อย่างไรก็ตามฉันจะยกโทษให้คุณในเรื่องนี้! ตกลงเพิ่งทดสอบ<?Phpที่ใช้งานได้ดังนั้นฉันเพิ่งเรียนรู้ว่าแท็กเริ่มต้นไม่คำนึงถึงขนาดตัวพิมพ์!
CJ Dennis

1
โซลูชันสองอันดับแรกในคำตอบนี้ไม่ปฏิบัติตามกฎ อันดับหนึ่งมีตามบรรทัดที่ 8 "!<br- นี่ไม่ได้จัดเรียง อันที่สองมีตามบรรทัดที่ 10: ."!- ไม่เรียงลำดับ
skagedal

1
@IsmaelMiguel ฉันขอโทษ แต่ไม่ใช่ บรรทัดที่ 7 ของคำแนะนำแรกจะไม่ถูกจัดเรียง บรรทัด 5 และ 7 ของข้อเสนอแนะที่สองจะไม่เรียงลำดับ
skagedal

7

Pyth, 7 บรรทัด, 23 ไบต์

-
"Hello
,
 Wor
l
d
!"b

ค่อนข้างง่ายเพียงใช้สตริงหลายบรรทัดและลบบรรทัดใหม่

ลองที่นี่


@ orlp ฉันเพิ่มสตริงหลายบรรทัดไม่กี่วันที่ผ่านมาและ Pyth ได้รับการสนับสนุนสำหรับบรรทัดใหม่ในอินพุตสำหรับทุกวัย สิ่งนี้ไม่ได้ใช้โหมดหลายบรรทัดเลย ลองใช้กับคอมไพเลอร์ออนไลน์ซึ่งไม่มีโหมดหลายบรรทัดอย่างแน่นอน
isaacg

2
มันเกือบจะเหมือนกันใน CJam โดยมีจำนวนไบต์เดียวกันด้วย
เครื่องมือเพิ่มประสิทธิภาพ

4

ออกไป, 41 เส้น, 143 ไบต์

ลองออนไลน์

ฉันภูมิใจในสิ่งนี้มาก ฉันตีมันออกมาได้อย่างรวดเร็วเมื่อฉันพบว่าฉันสามารถทำได้โดยให้ Google ค้นหาภาษาที่ไม่สนใจตัวพิมพ์เล็กและฉันก็รู้ Forth อย่างเรียบร้อยแล้ว มันสามารถย่อให้สั้นลงได้ทั้งไบต์และเส้น ข้อเสนอแนะได้รับการชื่นชม : D

โปรแกรมนี้จะผลักดันค่าทศนิยมของอักขระ ASCII แต่ละตัวจากนั้นพิมพ์แต่ละอัน ฉันพยายามปรับให้เหมาะสมในขณะที่เขียนมันดังนั้นจึงสามารถอ่านได้น้อยกว่าที่ฉันต้องการ

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

Emitสายไม่ได้ทำงานเป็นi(105) น้อยกว่าm(109)
bcsb1001

มันควรจะเป็น "EMit" งั้นเหรอ?
skagedal

4

Marbelous, 9 บรรทัด, 94 ไบต์

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

ทดสอบออนไลน์ได้ที่นี่ Using spaces for blank cellsจะต้องตรวจสอบ

การแสดงภาพของแหล่งที่มา:

การแสดงภาพของแหล่งที่มาข้างต้น

คำอธิบาย:แต่ละค่าเลขฐานสิบหกในโปรแกรมนี้จะเลื่อนลงทุก "ขีด" (ยกเว้น\\ในกรณีที่มันย้ายไปทางขวา) ++จะเพิ่มค่าการ--ลดลง~~ใช้ค่าที่ไม่เป็นบิตเป็นต้นค่าที่ลดลงของด้านล่างจะถูกพิมพ์เป็นอักขระ ASCII

ยกตัวอย่างเช่นการที่มุมด้านบนจะกลายเป็น33(((0x33 +1 +1) << 1) +1 +1 = 0x6C (l)



2

Rebol - 15 บรรทัด (51 ไบต์)

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

คำใน REBOL เป็นกรณีตาย (เช่น. PRINT, Printและprintทุกคนจะเรียกใช้ฟังก์ชันเดียวกัน)

โค้ดด้านบนจัดระเบียบขึ้น:

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

NB spส่งคืนถ่านอวกาศ!


โปรแกรมของคุณไม่ถูกต้องไม่{สามารถอยู่ต่อหน้าตัวอักษรใด ๆ
theonlygusti

@theonlygusti - แก้ไขแล้ว (หายจาก 9 บรรทัดเป็น 13) {,}บรรทัดเดียวที่ทำให้ผมมีปัญหาคือ นี่คือตอนนี้Sp + 12(มากกว่า 3 บรรทัด) ซึ่งเทียบเท่ากับอักขระเว้นวรรค + 12 (เช่นจุลภาค)
draegtun

2

Unary , 1 บรรทัด, มากมายไบต์

0ตัวละครในโปรแกรมนี้ทุกคนเป็น แหล่งที่มายาวเกินไปที่จะใส่ในที่นี่ แต่มันประกอบด้วยสตริงของศูนย์จำนวนมากนี้:

327380789025192647555922325233404088310881092761595127419003295178342329930050528932118548

นี่คือการแทนทศนิยมสำหรับเลขฐานสองนี้:

0b1010010010010010010010010110000010010010010110000010010000010010010000010010010000010001001001001011111000010000010000011110001111001011111000000100000011011011100010010010010010010010100100010010010100000000100001011100001100010010010100011011011011011011100011011011011011011011011100000000010100

ซึ่งสร้างจากโปรแกรม BrainF *** นี้:

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

ดูว่าฉันสร้างมันขึ้นมาได้อย่างไร: http://ideone.com/lMT40p


2

แบตช์ - 39 บรรทัด (202 ไบต์)

ฉันต้องการลดขนาดด้วยการเปิดใช้งานการขยายที่ล่าช้าโดยการเรียกใช้รหัสภายในการcmdโทรโดยใช้/v onสวิตช์ แต่ไม่สามารถผ่านกะรัตทั้งหมดได้

@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^
!^^^
!

ไม่มีการขึ้นบรรทัดใหม่ (และกะรัตเพื่อหนีการขึ้นบรรทัดใหม่):

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

1

Ruby, 19 บรรทัด, 95 ไบต์

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

อาจจะเป็นข้อ จำกัด รหัสที่สองที่ยากที่สุดสำหรับ Ruby ผมเคยเห็นในเว็บไซต์นี้หลังจากที่โหดร้ายที่นี่

แก้ไขสำหรับคำอธิบาย: วิธีการส่งออก Ruby เท่านั้นที่เรียงลำดับเป็น<<วิธีการใน STDOUT น่าเสียดายที่ค่าคงที่สำหรับ STDOUT คือ$>และ>เป็น ASCII ที่สูงกว่าสัญลักษณ์ส่วนใหญ่ดังนั้นจึงไม่สามารถเรียกวิธีการได้ เราต้องการคำสั่งการมอบหมายหลายบรรทัดเพื่อให้มันเป็นชื่อตัวแปรที่เข้าใจได้ง่ายกว่า$;(เซมิโคลอนยังค่อนข้างสูง แต่ตัวแปรส่วนใหญ่ของแบบฟอร์มนี้ไม่สามารถกำหนดได้หรือสามารถเป็นสตริงได้)

สัญลักษณ์ ( :Wor, ฯลฯ ) เป็นวิธีที่ง่ายที่สุดในการทำตัวอักษรและฉันไม่เห็นวิธีในการตัดบรรทัดใหม่จากสตริงดังนั้นฉันจึงต้องการคำสั่งพิมพ์จำนวนมาก ช่องว่างและเครื่องหมายวรรคตอนไม่สามารถเป็นสัญลักษณ์ได้ แต่โชคดีที่chrวิธีการเกี่ยวกับตัวเลขนั้นถูกต้องตามกฎหมายดังนั้นฉันสามารถรับตัวละครจากค่า ASCII ของมัน ::เป็นวิธีสำรองของวิธีการโทร สเปซนั้นยุ่งยากเพราะฉันไม่สามารถเขียนได้32ดังนั้นฉันจึงลบ 1 จาก 33 และกำหนดให้กับตัวแปร


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.