สวัสดีชาวโลก! (ตัวละครอื่น ๆ ทุกตัว)


129

เขียนโปรแกรมที่พิมพ์ "Hello, World!" แต่ถ้าคุณใช้ตัวอักษรตัวแรกตัวที่สามตัวที่ห้าและอื่น ๆ ในโปรแกรมของคุณโปรแกรมที่เป็นผลลัพธ์ควรพิมพ์ "Hello, World!"

หากโปรแกรมของคุณคือ:

abc
def

มันควรจะส่งออก "Hello, World!" แต่ควรจะ

acdf

ไม่มีวิธีแก้ไขที่มีอักขระน้อยกว่า 2 ตัว


2
จะมีช่องว่างรอบ ๆ เอาท์พุท?
vroomfondel

18
โพสต์แรกที่น่าทึ่ง!
อดัม

11
การเห็นคำตอบทั้งหมดด้วย "HHeelllloo" ทำให้ฉันนึกถึงการพูดวาฬ
Brian Minton

32
เคล็ดลับสำหรับการหลีกเลี่ยง "สวัสดีโลก!" บิวด์อินในความท้าทายเช่นนี้: ใช้สตริงที่มีความซับซ้อนแตกต่างกันเล็กน้อยเช่น "สวัสดีโลก!"
Martin Ender

6
"ไม่มีวิธีแก้ไขที่มีอักขระน้อยกว่า 2 ตัว" น่าอัศจรรย์
Robert Grant

คำตอบ:


195

Python 3 , 61 ไบต์

rant="partisn't"
print(("HHeelllloo,,  WWoorrlldd!!"""[::2]))

ลองออนไลน์!

การใช้ความจริงที่ผิดว่าprintเป็นฟังก์ชันใน Python 3 :)

ทางออกพรรคพวกอย่างน้อยคุณจะพบที่นี่ใน PPCG

กลายเป็น

rn=print
rn("Hello, World!"[:])

48
นี่คือสิ่งที่สวยงาม
musicman523

1
@ musicman523 แต่ห้าม REPL ล้อมข้อความด้วยเครื่องหมายคำพูดเดี่ยวในกรณีนั้น
อย่างเป็นทางการ

1
@officialaimm ใช่ฉันคิดว่ามันเป็น
musicman523

1
@ yamboy1 ลองลบจดหมายอื่น ๆ ออกทั้งหมด
vroomfondel

1
ฉันไม่ทราบว่า[:]ใช้งานได้จริง: o Nice!
HyperNeutrino

56

พระคาร์ดินัล 29 ไบต์

%
"
H
e
l
l
o
,
 
W
o
r
l
d
!

ลองออนไลน์!

การลบอักขระอื่นทุกตัวจะลบ linefeeds ทั้งหมดซึ่งยังคงส่งผลให้Hello, World!:

%"Hello, World!

ลองออนไลน์!

เหตุผลที่ทำงานนี้คือการ%สร้างตัวชี้คำสั่งสี่ตัวซึ่งเคลื่อนที่ในทิศทางทั้งสี่ของพระคาร์ดินัล IP ที่ปล่อยซอร์สโค้ดจะถูกลบออกอย่างง่ายดาย ดังนั้นในกรณีแรกเฉพาะ IP ที่ไปทางทิศใต้เท่านั้นที่เหลืออยู่และในกรณีที่สองมีเพียง IP ที่ไปทางตะวันออกเท่านั้นที่เหลืออยู่ "Hello, World!ในทั้งสองกรณีโปรแกรมดำเนินการเป็นเพียงแค่นั้น "สลับไปที่โหมดสตริงที่แต่ละเซลล์จะมีการพิมพ์เพียงเพื่อ STDOUT เราไม่จำเป็นต้องยกเลิกสตริงเนื่องจากการปล่อยซอร์สโค้ดยังคงเป็นการยุติโปรแกรม

โปรดทราบว่าแนวคิดเดียวกันนี้ใช้งานได้ในขี้ผึ้งใช้*แทน%และ`แทน"(นี่เป็นเพราะขี้ผึ้งได้รับแรงบันดาลใจจากพระคาร์ดินัลส่วนใหญ่ แต่ใช้ตารางหกเหลี่ยม)

ลองออนไลน์! (แนวตั้ง) | | ลองออนไลน์! (แนวนอน)



31

จริงแล้ว 2 ไบต์

HH

คำอธิบาย:

Hอย่างที่คุณคาดไว้ดันHello, World!ไปที่กองซ้อน

โปรแกรมหลัก ( HH) จะพบโปรแกรมแรกHและกดHello, World!ไปที่สแต็ก Hอย่างไรก็ตามในวินาทีมันจะพยายามใช้สองอาร์กิวเมนต์ (เนื่องจากสแต็กจะต้องว่างเปล่าที่จะผลักดันHello, World!) และล้มเหลว อย่างไรก็ตามข้อผิดพลาดนี้จะถูกละเว้นและจากนั้นHello, World!จะถูกพิมพ์โดยปริยาย

โปรแกรมที่สอง ( H) จะผลักHello, World!หนึ่งครั้งและจะถูกพิมพ์โดยปริยาย

นี่คล้ายกับคำตอบ 2 ไบต์ของ Fatalize แต่นี่ไม่ใช่ "โกง"

ลองออนไลน์!


4
วิธีแก้ปัญหาที่ดี แต่ฉันคิดว่าสิ่งนี้ไม่ควรนับเนื่องจากมันมากเกินไปเหมือนโซลูชันตัวเดียว
Leo Tenenbaum

32
@LeoTenenbaum ทำไมล่ะ? มันสอดคล้องกับกฎอย่างสมบูรณ์แบบ
Okx

2
สิ่งที่คุณอธิบายไม่ใช่ในกรณีนี้HจะผลักเฉพาะHello, World!ในสแต็กที่ว่างเปล่าเท่านั้นและหากสแต็กไม่ว่างเปล่ามันจะต้องมีอาร์กิวเมนต์ 2 ข้อดังนั้นจะมีข้อผิดพลาดและข้อผิดพลาดจะถูกละเว้น และไม่มีจริงๆแล้วไม่ได้พิมพ์เฉพาะองค์ประกอบระดับบนสุดเท่านั้น
Erik the Outgolfer

@EriktheOutgolfer โอ๊ะโอ จะแก้ไข
Okx

นี่คือเหตุผลที่ภาษาของฉันชอบเล่นกอล์ฟจริงๆ มันอยู่ในระดับที่สมบูรณ์แบบของความโง่เขลา
RShields

22

Lua , 89 ไบต์

--- [ [
print("Hello, World!")
--[[ ] ]
pCrAiLnCtU(L"AHTeOlRlFoE,L IWNoEr:lDd !:"D)
---]]

ลองออนไลน์! ในขณะที่การเน้นไวยากรณ์แสดงว่านี่เป็นการแสดงความคิดเห็นที่ไม่เหมาะสม

สำรอง:

--[[pit"el,Wrd"
-[]]print("Hello, World!")--]

ลองออนไลน์!

และเพื่อความสะดวกโปรแกรมที่แปลงโปรแกรมเป็นรูปแบบอักขระอื่น ๆ : ลองออนไลน์!


ฉันชอบอันนี้! รูปแบบการแสดงความคิดเห็นของ Lua นั้นคล้ายกับ T-SQL ฉันจะลองใช้ภาษานั้นดู
BradC

3
เคล็ดลับประเภทนี้ควรใช้ได้กับทุกภาษาที่มีทั้งความคิดเห็นในบล็อกและความคิดเห็นในบรรทัด (C, JS และอื่น ๆ )
เครื่องคิดเลข

2
CALCULATORFELINE: D: D
Riking

2
HHeelllloo WWoorrlldd!!น่าเบื่อแล้ว: P
เครื่องคิดเลข

19

เรติน่า 39 ไบต์


HHeelllloo,,  WWoorrlldd!!


(.).x?
$1

ลองออนไลน์!

รับตัวละครอื่น ๆ ทั้งหมดให้:


Hello, World!
()x
1

ลองออนไลน์!

โปรแกรมแรกสร้างสตริงที่มีคำทักทายซ้ำกัน จากนั้นจะแทนที่อักขระแต่ละคู่ด้วยอักขระตัวแรก นอกจากนี้ยังมีสเตจว่างที่แทนที่สตริงว่างทั้งหมดด้วยสตริงว่างในระหว่างนั้น แต่นั่นไม่ได้ทำอะไรเลย โปรแกรมที่สองล้มเหลวในการจับคู่ตัวอักษร "x" ดังนั้นจึงไม่แทนที่อะไรเลยหลังจากสร้างคำทักทาย

บางทีน่าขันมากกว่าถ้าขั้นตอนที่สามเปลี่ยนไปเล็กน้อยตัวละครชุดแรกไม่จำเป็นต้องเป็นข้อความเดียวกัน ซึ่งอาจนำไปสู่การแก้ปัญหาความยาวเหมือนกันหลายอย่างเช่นการเต็มรูปแบบและลดลงครึ่งหนึ่ง


17

ถ่าน 25 ไบต์

H→e→l→l→o→,→ →W→o→r→l→d→!

ลองออนไลน์!

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

Hello, World!

ลองออนไลน์!

ที่พิมพ์คำทักทาย


17

Haskell , 85 ไบต์

{--}main=putStr"Hello, World!"--} m a i n = p u t S t r " H e l l o ,   W o r l d ! "

ลองออนไลน์!

ลบตัวละครที่สองทุกครั้ง:

{-mi=uSrHlo ol!-}main=putStr"Hello, World!"

ลองออนไลน์!

วิธีนี้ใช้ประโยชน์จากสองรูปแบบความคิดเห็นใน Haskell: {- -}สำหรับความคิดเห็นในบรรทัดหรือหลายบรรทัดและ--เพื่อแสดงความคิดเห็นส่วนที่เหลือของบรรทัด


16

Javascript, 67 ไบต์

/**/alert`Hello, World`// * / a l e r t ` H e l l o ,   W o r l d `

ลบจดหมายที่สองทุกครั้ง:

/*aetHlo ol`/*/alert`Hello, World`

เช่นเดียวกับคำตอบของ Haskell ของ Laikoni การใช้ประโยชน์จากความคิดเห็นนี้


คำตอบที่ดี +1! บันทึก 2 ไบต์ด้วยการสร้างพอร์ตของคำตอบของคุณในJava 8 คำตอบของฉันและเพิ่มอีกหนึ่งไบต์เมื่อฉันเปลี่ยน// * /เป็น//**/(ซึ่งโชคไม่ดีในกรณีของคุณเนื่องจาก/**/alert`Hello, World` เป็นจำนวนไบต์ที่แปลกแทนที่จะเป็นเช่นในกรณีของฉัน .
Kevin Cruijssen

14

Brachylogขนาด 4 ไบต์

Ḥ~wḤ

ลองออนไลน์!

คำอธิบาย

~wเขียนตัวแปรที่ถูกต้องไปที่STDOUTและไม่สนใจอาร์กิวเมนต์ที่เหลือ คือ"Hello, World!"ดังนั้นพิมพ์Hello, World!นี้

Ḥwถ้าเราใช้เวลาเพียงตัวอักษรแรกและที่สามที่เราได้รับ ในกรณีนั้นwเขียนตัวแปรซ้ายและละเว้นตัวแปรขวาดังนั้นจึงพิมพ์Hello, World!ด้วย

2 ไบต์

ḤḤ

ลองออนไลน์!

นี่เป็นคำตอบทางเทคนิคที่ถูกต้อง แต่สิ่งนี้รวมเอาท์พุทตัวแปรของโปรแกรมแทนที่จะพิมพ์ไปSTDOUTด้วยดังนั้นฉันเดาว่าโปรแกรม 4 ไบต์มีความสำคัญมากในความท้าทาย


ฉันไม่คิดว่าคำตอบที่ 2 ไบต์คือ 'เทคนิค' ที่ถูกต้องเป็นความท้าทายรัฐพิมพ์
Okx

1
@ พิมพ์ okx เช่นเดียวกับบนแผ่นกระดาษหรือไม่?
theonlygusti

@theonlygusti มันหมายถึงพิมพ์ไปยัง STDOUT
Okx

5
@theonlygusti ถอนหายใจ ... นั่นคือความหมายโดยการพิมพ์โดยค่าเริ่มต้น
Okx

3
@Okx คุณกำลังพยายามที่จะแก้ปัญหาให้เป็นโมฆะ แต่จริงๆแล้วมันไม่มีอะไรที่ไม่ถูกต้อง ความท้าทายบอกว่า "เอาท์พุท" เท่านั้น
theonlygusti

11

Haskell, 102 ไบต์

โปรแกรมเต็มรูปแบบ:

main= putStr"Hello, World!";;
putSt   x ="p u t S t r  \" H e l l o ,   W o r l d !\"";
mmaaiin = main

และลบตัวละครอื่น ๆ ทุกตัว:

mi=ptt"el,Wrd";ptt x=putStr "Hello, World!";main=mi

คุณสามารถใช้เวลาปิด 2 ไบต์โดยการลบช่องว่างระหว่างและp u t S t r \"
Sriotchilism O'Zaic

11

รหัสเครื่อง x86, 162 ไบต์

การสาธิต

PROG.COM ดาวน์โหลดและเรียกใช้ในMS-DOSจำลองDOSBoxตัวอย่างเช่น

90 B3 B4 B4 02 90 90 B3 B2 B2 48 90 90 B3 CD CD 21 90 90 B3 B2 B2 65 90 
90 B3 CD CD 21 90 90 B3 B2 B2 6C 90 90 B3 CD CD 21 90 90 B3 CD CD 21 90 
90 B3 B2 B2 6F 90 90 B3 CD CD 21 90 90 B3 B2 B2 2C 90 90 B3 CD CD 21 90 
90 B3 B2 B2 20 90 90 B3 CD CD 21 90 90 B3 B2 B2 77 90 90 B3 CD CD 21 90 
90 B3 B2 B2 6F 90 90 B3 CD CD 21 90 90 B3 B2 B2 72 90 90 B3 CD CD 21 90 
90 B3 B2 B2 6C 90 90 B3 CD CD 21 90 90 B3 B2 B2 64 90 90 B3 CD CD 21 90 
90 B3 B2 B2 21 90 90 B3 CD CD 21 90 90 B3 CD CD 20 90

หลังจากลบMINI.COM Download

90 B4 02 90 B2 48 90 CD 21 90 B2 65 90 CD 21 90 B2 6C 90 CD 21 90 CD 21 
90 B2 6F 90 CD 21 90 B2 2C 90 CD 21 90 B2 20 90 CD 21 90 B2 77 90 CD 21 
90 B2 6F 90 CD 21 90 B2 72 90 CD 21 90 B2 6C 90 CD 21 90 B2 64 90 CD 21 
90 B2 21 90 CD 21 90 CD 20

วิธีการใช้งาน

ติดตั้ง DOSBox สำหรับ Ubuntu / Debian

sudo apt install dosbox

เรียกใช้

dosbox

ใน DOSBOX

mount c /home/user/path/to/your/directory
c:
PROG.COM
MINI.COM

มันทำงานอย่างไร

เครื่องรหัสการดำเนินงานที่แสดงให้เห็นถึงการชุมนุมภาษาคำแนะนำ

ใน MS-DOS เพื่อพิมพ์อักขระคุณจะตั้งค่าการลงทะเบียนและทำการขัดจังหวะ การลงทะเบียน AH จะเป็น 0x02, การลงทะเบียน DL มีอักขระของคุณ เวกเตอร์ขัดจังหวะคือ 0x21

mov ah,0x2  ;AH register to 0x2 (B4 02)
mov dl,0x48 ;DL register to "H" (B2 48)
int 0x21    ;0x21 interrupt     (CD 21)

MS-DOS ไฟล์ COMรุ่นเล็กเป็น choise ที่ดีเพราะมันไม่ได้มีส่วนหัวใดมันถูก จำกัด โดย 64K แต่ในกรณีของเรามันไม่สำคัญ

ในการหยุดโปรแกรมใช้ขัดจังหวะ 0x20

int 0x20    ;0x20 interrupt     (CD 20)

มายากล

หากคุณต้องการดำเนินการคำสั่ง opcode 0xABด้วยพารามิเตอร์หนึ่ง0xCDคุณเขียน

AB CD

ในPROG.COM

90 B3 AB AB CD 90
nop         ; No operation (90)
mov bl,0xb4 ; BL register to AB (B3 AB)
AB CD command (AB CD)
nop         ; No operation (90)

ในMINI.COM

90 AB CD
nop         ; No operation (90)
AB CD command (AB CD)

มันเป็นเท่ากับรหัสเครื่องถ้าคุณไม่ได้ใช้BL ลงทะเบียน

เครื่องกำเนิดไฟฟ้า

แปลงไฟล์ข้อความด้วยเลขฐานสิบหกเป็นเลขฐานสิบหก

cat hex_file | xxd -r -p > exec.com


ลบ `90 90` ทั้งหมดสำหรับ -52 bytes
NieDzejkob

และจะไม่มีใครมาถึงปลายสุดของชีวิตเลย
NieDzejkob

10

Pyth , 31 ไบต์

p% 2"HHeelllloo,,  WWoorrlldd!!

ลองออนไลน์!

กลายเป็น

p "Hello, World!

ขอบคุณ @CalculatorFeline สำหรับการชี้ข้อผิดพลาดและลบหนึ่งไบต์


อักขระเริ่มจากตัวแรกไม่ใช่ตัวที่สอง คุณสามารถวางพื้นที่นำหน้า
CalculatorFeline

อ้าขอบคุณ @CalculatorFeline ฉันอ่าน "ใช้" เป็น "ลบ" ในข้อมูลจำเพาะ
vroomfondel


7

05AB1E , 29 ไบต์

”™ ,ï‚‚ï ! ”# ¦2 ä ø¨øJð ý

ลองออนไลน์!

คำอธิบาย

”™ ,ï‚‚ï ! ”                # push the string "Weekly Hello , Changed World ! "
               #               # split on spaces
                               # RESULT: ['Weekly','Hello',',','Changed','World','!','']
                ¦              # remove the first element (Weekly)
                 2ä            # split in 2 parts
                               # RESULT: [['Hello', ',', 'Changed'], ['World', '!', '']]
                   ø           # zip
                               # RESULT: [['Hello', 'World'], [',', '!'], ['Changed', '']]
                    ¨          # remove the last element
                     ø         # zip
                               # RESULT: [['Hello', ','], ['World', '!']]
                      J        # join each inner list
                       ðý      # join on space

หลังจากลบตัวละครอื่น ๆ แล้วเราก็จะเหลือรหัส

”Ÿ™,‚ï!” 2äøøðý

ลองออนไลน์!

คำอธิบาย

”Ÿ™,‚ï!”       # push the string "Hello, World!"
        2ä     # split in 2 parts
               # RESULT: ['Hello, ', 'World!']
          ø    # zip, as the string has an odd length the space is lost
               # RESULT: ['HW', 'eo', 'lr', 'll', 'od', ',!']
           ø   # zip again
               # RESULT: ['Hello,', 'World!']
            ðý # join on space

7

Mathematica, 62 ไบต์

P0r0i0n0t0@0"0H0e0l0l0o0,0 0W0o0r0l0d0!0"Print@"Hello, World!"

มันกลับ"0H0e0l0l0o0,0 0W0o0r0l0d0!0" Null P0r0i0n0t0[0]มาและพิมพ์Hello, World!เป็นผลข้างเคียง เมื่อรันเป็นโปรแกรม (ไม่ใช่ใน REPL) ค่าส่งคืนจะไม่ถูกพิมพ์

หลังจากลบตัวละครอื่นทุกตัว:

Print@"Hello, World!"rn@Hlo ol!

ก็จะส่งกลับและภาพพิมพ์Null ol! rn[Hlo]Hello, World!


7

เจลลี่ , 26 25 ไบต์

““3ḅaė;œ»ḷ“ 3 ḅ a ė ; œ »

ลองออนไลน์!

หลังจากลบตัวละครทุกวินาทีเราจะเหลือรหัสต่อไปนี้

“3a;»“3ḅaė;œ»

ลองออนไลน์!

มันทำงานอย่างไร

““3ḅaė;œ»ḷ“ 3 ḅ a ė ; œ »  Main link.

““3ḅaė;œ»                  Index into Jelly's dictionary to yield
                           ["", "Hello, World!"]. 
          “ 3 ḅ a ė ; œ »  Index into Jelly's dictionary to yield.
                          " FullERebitingBEfluffiest adoptable".
         ḷ                 Take the left result.
“3a;»“3ḅaė;œ»  Main link.

“3a;»          Index into Jelly's dicrionary to yield " N-".
               Set the argument and the return value to the result.
     “3ḅaė;œ»  Index into Jelly's dicrionary to yield "Hello, World!".
               Set the return value to the result.

7

ตามลำดับ v2.1 , 222 ไบต์

+0503 @@6 :22 //1 +050501 @@6 :55 +0502 @@6@6 :33 //1 +050502 @@6 :55 +03 //1 +04 @@6 :55 //1 +03 @@6 :55 +01 //1 +0504 @@6 :33 //1 +050502 @@6 :55 +01 //1 +050502 @@6 :55 +0502 @@6 :11 //1 +050501 @@6 :55 +01 //1 +03 @@6

ลองออนไลน์!

ตัวอักษรอื่น ๆ ทุกตัว:

+53@6:2/1+551@6:5+52@66:3/1+552@6:5+3/1+4@6:5/1+3@6:5+1/1+54@6:3/1+552@6:5+1/1+552@6:5+52@6:1/1+551@6:5+1/1+3@6

ลองออนไลน์!



6

ช่วยเหลือ WarDoq! 2 ไบต์

Hi

ลองออนไลน์!

Hพิมพ์Hello, World!, iคือไม่มี-op

ช่วยเหลือ WarDoq! สามารถเพิ่มตัวเลขสองตัวและทดสอบเฉพาะช่วงเวลาดังนั้นจึงถือว่าเป็นภาษาการเขียนโปรแกรมที่ถูกต้องต่อเมตาโพสต์นี้


ทำไม downvote นี้
Uriel

NOP และช่องว่างขนาดใหญ่ขัดต่อจิตวิญญาณ
RShields

1
+1 เนื่องจากความแปลกใหม่เกี่ยวกับวิธีที่ซอร์สโค้ดผลลัพธ์เน้นข้อความที่รับเอาต์พุตซ้ำ
TOOGAM


6

PHP, 53 ไบต์

#
echo date(
$e_c_h_o='\H\e\l\l\o\,\ \W\o\r\l\d\!
');

เมื่อนำตัวละครอื่นออกแล้ว:

#eh ae
echo'Hello, World!';

6

คู่, 49 45 ไบต์

บันทึกแล้ว 4 ไบต์เนื่องจาก Octave ไม่จำเป็นต้องใช้วงเล็บในการทำดัชนี

'HHeelllloo,,  WWoorrlldd!! ' (1:2 : 3 ^ 3)''

ลองออนไลน์!

และหนึ่งที่ลดลง:

'Hello, World!'(:    )'

ลองออนไลน์!

คำอธิบาย:

รหัสเริ่มต้นมีตัวอักษรในสตริงที่ซ้ำกันดังนั้นเราจะเหลือHello, World!เมื่อทุกวินาทีจะถูกลบ มีการเพิ่มช่องว่างบางส่วนเพื่อให้แน่ใจว่ามีการเก็บเครื่องหมายวงเล็บและเครื่องหมายอัญประกาศ

1:2:endดัชนีมัน มี 27 ตัวอักษรและเราไม่สามารถใช้endหรือ27เนื่องจากเราต้องลบตัวอักษรดังนั้นเราจึงไปด้วย3 ^ 3แทน เมื่อเราลบตัวละครทุกตัวที่สามการสร้างดัชนีจะกลายเป็น(:)(และมีช่องว่างเพิ่มเติม)

(:)หมายความว่า"แผ่และกลายเป็นเวกเตอร์แนวตั้ง" 'ดังนั้นเราจำเป็นต้องย้ายมันใช้ เราไม่จำเป็นต้องแปลงสตริงในรหัสต้นฉบับ แต่ใช้งานการแปลงสองครั้งดังนั้นสตริงแรกจะถูกเปลี่ยนสองครั้งโดยใช้''และครั้งที่สองจะถูกเปลี่ยนเพียงครั้งเดียว


6

APL (Dyalog) , 35 34 ไบต์

-1 ขอบคุณ Martin Ender

'0H0e0l0l0o0,0 0W0o0r0l0d0!0'~  0

ลองออนไลน์!

'0H0e0l0l0o0,0 0W0o0r0l0d0!0' ข้อความที่มีศูนย์เป็นอักขระฟิลเลอร์ที่ถอดออกได้

~ ยกเว้น

 จัดรูปแบบ (สตริง)

0 จำนวนศูนย์

'Hello, World!' เหลือแค่ตัวละครที่แปลกนี้จะกลายเป็น


5

T-SQL, 75 ไบต์

---
PRINT 'Hello, World!'
/*
-P-R-I-N-T-'-H-e-l-l-o-,- -W-o-r-l-d-!-'
---*/

เดียวและความคิดเห็นของหลายสายการละเมิดแรงบันดาลใจจาก CalculatorFeline รุ่นลัวะ

หลังจากลบอักขระที่มีเลขคู่ทั้งหมดแล้วบางตัวก็เป็นตัวแบ่งบรรทัด:

--PIT'el,Wrd'/
PRINT'Hello, World!'--/

5

Javascript, 73 ไบต์

a ='a0l0e0r0t0`0H0e0l0l0o0,0 0W0o0r0l0d0!0`0/0/';eval(a.replace(/0/g,''))

สร้างสตริงที่aมีเนื้อหาa0l0e0r0t0`0H0e0l0l0o0,0 0W0o0r0l0d0!0`0/0/จากนั้นลบทั้งหมด0ที่จะให้alert`Hello, World!`//ซึ่งก็คือeval'd

นำตัวละครอื่น ๆ ของโปรแกรมมาให้

a=alert`Hello, World!`//;vlarpae//,')

ซึ่งการแจ้งเตือนHello, Worldโดยใช้แม่แบบสตริงไวยากรณ์ทางเดียวกันว่าเป็นสิ่งที่ถูก eval'd ในโปรแกรมเต็มรูปแบบแล้วเก็บผลของการโทรในที่และรวมถึงความคิดเห็นที่ชาญฉลาดa//;vlarpae//,')


5

> <> , 47 ไบต์

เดิม:

| v~" H e l l o ,   W o r l d ! "

~o<< ;!!!? l

เมื่อลบตัวละครทุกวินาที:

|v"Hello, World!"
o<;!?l

ลองพวกเขาออนไลน์: เดิม , การแก้ไข

โปรแกรมต้นฉบับผลักดันตัวละครของ "Hello, World!" ไปที่สแต็ก (เรียงกลับกัน) สลับกับช่องว่างแล้วสลับอักขระและลบหนึ่งจนกว่าความยาวของสแต็กจะเป็นศูนย์ โปรแกรมที่สองทำเช่นเดียวกันยกเว้นคำแนะนำการลบ~จะหายไป

หากคุณไม่ลังเลใจที่จะมีข้อผิดพลาดเราสามารถนำหนังสือพระคาร์ดินัลของ Martin Ender ออกมาได้: รหัสที่แก้ไขคือ

\"!dlroW ,olleH"!#o#

และตัวต้นฉบับจะเหมือนกัน แต่มีการแทรกบรรทัดใหม่ระหว่างอักขระทั้งหมดสำหรับ 39 ไบต์ ลองพวกเขาออนไลน์: เดิม , การแก้ไข


5

,,,, 34 ไบต์

 2"Hteoltlaol,l yWhourmladn!! "⟛

เมื่อลบตัวอักษรที่เป็นเลขคู่ ...

 "Hello, World!"

คำอธิบาย

ด้วยตัวละครทั้งหมด:

 2"..."⟛

               no-op
 2             push 2 to the stack
  "..."        push "Hteoltlaol,l yWhourmladn!! " to the stack
       ⟛      pop 2 and the string and push every 2nd character of the string
               implicit output

ไม่มีอักขระที่เป็นเลขคู่:

 "..."

               no-op
 "..."         push "Hello, World!" to the stack
               implicit output

5
นี่แปลว่าคุณไม่จำเป็นต้องพูดว่านี่ไม่ใช่การแข่งขัน
FryAmTheEggman

2
แต่คุณควรจะเก็บตัวอักษรทั้งหมดที่มีการทำดัชนีไว้ ... (0-indexed) ...
HyperNeutrino

อ๊ะแก้ไขแล้ว เพียงแค่เพิ่มตัวละครอื่น ๆ ฮ่า ๆ
มนุษย์โดยรวม

4

Brainfuck, 155 ไบต์

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

ลองออนไลน์!

ลบตัวละครที่สองทุกครั้ง:

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

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