ใช้นักกอล์ฟที่ว่าง


15

esolangs สองมิติบางอย่างเช่นForkedและบางส่วนที่ไม่ใช่ esolangs เช่นPythonบางครั้งอาจต้องการช่องว่างก่อนบรรทัดของโค้ด นี่มันไม่ค่อยเล่นกอล์ฟมาก นอกจากนี้ฉันขี้เกียจเขียน 2d lang ที่ต้องการช่องว่างจำนวนมากก่อนรหัส งานของคุณคือการเขียนเครื่องมือที่ทำให้นักกอล์ฟภาษาเหล่านี้

แน่นอนว่าสิ่งนี้จะไม่สมบูรณ์แบบ ไม่สามารถใช้งานได้เช่นเมื่อตัวเลขเป็นอักขระตัวแรกในบรรทัดแหล่งที่มา อย่างไรก็ตามโดยทั่วไปจะมีประโยชน์

ท้าทาย

คุณจะเขียนโปรแกรมหรือฟังก์ชั่นที่ ...

  • ... รับหนึ่งอาร์กิวเมนต์ชื่อไฟล์หรือสตริงหรือ ...
  • ... อ่านจากอินพุตมาตรฐาน

โปรแกรมของคุณจะทำหน้าที่catยกเว้น:

  • หากอักขระตัวแรกในบรรทัดใด ๆ เป็นตัวเลขรหัสของคุณจะพิมพ์xช่องว่างโดยที่xคือหมายเลขนั้น
  • มิฉะนั้นจะพิมพ์ออกมาอย่างง่ายดาย
  • เช่นเดียวกับตัวละครอื่น ๆ ในการป้อนข้อมูล

กรณีทดสอบ

การป้อนข้อมูล:

foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar

เอาท์พุท:

foo bar foo bar
 foo bar foo bar foo bar
  foo bar foo bar foo bar foo bar

การป้อนข้อมูล:

--------v
8|
8|
80
8,
7&

เอาท์พุท:

--------v
        |
        |
        0
        ,
       &

การป้อนข้อมูล:

foo bar
bar foo
foo bar

เอาท์พุท:

foo bar
bar foo
foo bar

การป้อนข้อมูล:

0123456789
1234567890
2345678901
3456789012
4567890123

เอาท์พุท:

123456789
 234567890
  345678901
   456789012
    567890123

กฎระเบียบ

  • ผลลัพธ์จะต้องตรงกับอินพุตยกเว้นสำหรับบรรทัดที่อักขระตัวแรกเป็นตัวเลข
  • โปรแกรมของคุณไม่สามารถผนวก / เติมสิ่งใด ๆ ลงในไฟล์ยกเว้นหนึ่งบรรทัดขึ้นบรรทัดใหม่หากคุณต้องการ
  • โปรแกรมของคุณอาจไม่มีข้อสมมติฐานเกี่ยวกับอินพุต มันอาจมีบรรทัดว่างเปล่าไม่มีตัวเลขอักขระ Unicode หรืออะไรก็ตาม
  • หากตัวเลขที่มีมากกว่าหนึ่งหลักเริ่มต้นบรรทัด (เช่น523abcdefg) เฉพาะตัวเลขแรกเท่านั้น (ในตัวอย่างที่ 5) ควรเปลี่ยนเป็นช่องว่าง

ผู้ชนะ

รหัสสั้นที่สุดในแต่ละภาษาชนะ ขอให้สนุกและโชคดี!



6
Of course, this will not be perfect; it cannot be used, for instance, when a number is the first character on a line of source.ไม่เป็นความจริงเพียงแค่ทำให้ตัวละครตัวแรกเป็น 0 (อะแฮ่มกรณีทดสอบสุดท้ายของคุณ)
HyperNeutrino

เราสามารถอ่านรายการสตริงจาก stdin ( ใช้ได้หรือไม่)
Riley

คำตอบ:



10

Cubically , 69 ไบต์

R1B1R3B1~(+50<7?6{+54>7?6{-002+7~?6{(@5*1-1/1)6}}}(-6>7?6&@7+70-4~)6)

ลองออนไลน์!

คำอธิบาย:

ครั้งแรกที่เราทำการเริ่มต้นนี้:

R1B1R3B1

ในการตั้งค่าคิวบ์นี้:

   533
   004
   000
411223455441
311222331440
311222331440
   555
   555
   200

สิ่งที่สำคัญที่สุดเกี่ยวกับคิวบ์นี้คือจำนวนที่ต้องเผชิญ5กับ 32 ซึ่งเป็นค่าที่จำเป็นสำหรับการพิมพ์ช่องว่าง บังเอิญมันเกิดขึ้นค่อนข้างสั้นสำหรับการคำนวณอื่น ๆ ทั้งหมด หลังจากนั้นเสร็จ:

~( . . . )                                    Takes the first input, then loops indefinitely

  +50<7?6{+54>7?6{-002+7~?6{(@5*1-1/1)6}}}    Handle leading digit:
  +50<7?6{                               }    If input is greater than 47 ('0' is 48)
          +54>7?6{                      }     And input is less than 58 ('9' is 57)
                                              Then input is a digit
                  -002+7                      Set notepad equal to value of input digit
                        ~                     Take next input (only convenient place for it)
                         ?6{           }      If the notepad isn't 0
                            (        )6       While the notepad isn't 0:
                             @5                 Print a space
                               *1-1/1           Decrement the notepad by one
                                              Leading digit handled

     (-6>7?6&@7+70-4~)6                       Handle rest of line:
     (               )6                       While the notepad isn't 0:
      -6>7?6&                                   Exit if End of Input
             @7                                 Print the next character
               +70-4                            Set notepad to 0 if it was a newline
                    ~                           Take the next character

1
ว้าวนั่นมันเป็นการใช้งานที่ดีของทุกอย่าง ... ซ้อนกัน +1
MD XF

6

Husk , 15 13 ไบต์

-2 ไบต์ขอบคุณ @Zgarb

mΓo+?oR' i;±¶

ลองออนไลน์!

ใช้เทคนิคเดียวกับ @Jonathan Allan

คำอธิบาย

             ¶  -- split input into a list of lines
m               -- apply the following function to each line
 Γ              --   deconstruct the string into a head and a tail
  o+            --   prepend to the tail of the string ...
    ?      ±    --     if the head is a digit (n)
     oR' i      --       the string of n spaces
                --     else
          ;     --       the head of the string
                -- implicitly print list of strings line-by-line

2
13 ไบต์Γที่มีการใช้
Zgarb

5

JavaScript (ES8), 38 37 ไบต์

a=>a.replace(/^\d/gm,a=>''.padEnd(a))

ฉันไม่คิดว่ามันจะดีขึ้นกว่านี้อีกแล้ว
บันทึก 1 ไบต์ขอบคุณShaggy - ใช้คุณสมบัติ ES8


" ฉันไม่คิดว่ามันจะดีขึ้นกว่านี้อีกแล้ว " - คุณสามารถบันทึกไบต์ด้วยการใช้ ES8 padEndดังนี้:s=>s.replace(/^\d/gm,m=>"".padEnd(m))
Shaggy

@Shaggy ฉันไม่รู้ว่าอนุญาต ES8 แล้ว ขอบคุณ

1
หากมีล่ามตัวใดตัวหนึ่ง (เช่นเบราว์เซอร์) ออกมาที่นั่นสนับสนุนฟีเจอร์นั่นคือฟีเจอร์ที่เป็นเกมที่ยุติธรรมที่นี่ :)
Shaggy

4

Python 2 , 98 74 67 65 ไบต์

-24 ไบต์ขอบคุณ Jonathan Allan -7 ไบต์ขอบคุณ Mr. Xcoder

for i in open('f'):print' '*int(i[0])+i[1:]if'/'<i[:1]<':'else i,

ลองออนไลน์!

fจะเข้าในไฟล์ที่ชื่อว่า


ยังมีข้อผิดพลาดเมื่อไม่มีตัวเลขในอักขระตัวแรกของบรรทัด (เมื่อใช้รายการเป็นวิธีการเลือกรายการองค์ประกอบทั้งหมดที่มีการประเมิน)
Jonathan Allan


87 ไบต์ - ส่วนหัวของลิงก์ TIO เป็นเยาะเย้ยopen; รหัสกำลังรอไฟล์ชื่อ 'f' ฉันคิดว่ามันโอเคไหม
Jonathan Allan

อาจริง' '*0เป็นเท็จ การใช้[:1]ยังคงบันทึกไว้ readฉันไม่จำเป็นต้องเชื่อ (และมันจะเป็นreadlines) เนื่องจากพฤติกรรมเริ่มต้นของopenคือการย้ำผ่านเส้น นอกจากนี้ยังไม่จำเป็นสำหรับโหมดเนื่องจาก'r'เป็นค่าเริ่มต้น ถ้าฉันถูกที่73 !
Jonathan Allan

ขอให้เรายังคงอภิปรายนี้ในการแชท
Jonathan Allan

4

Ruby , 24 21 + 1 = 25 22 ไบต์

ใช้-pธง -3 ไบต์จาก GB

sub(/^\d/){"%#$&s"%p}

ลองออนไลน์!


{"% # $ & s"% ""} ประหยัด 1 ไบต์
GB

และอีกไบต์ถ้าคุณใช้ย่อยแทน gsub
GB

@GB และไบต์อื่นโดยการใส่ที่ปลายแทน%p %""ขอบคุณสำหรับความช่วยเหลือของคุณ!
หมึกมูลค่า

3

05AB1E , 10 ไบต์

v0y¬dićú},

ลองออนไลน์!


1
หนึ่งอินพุตที่มีบรรทัดว่างได้อย่างไร?
Jonathan Allan

ไม่มีความคิด lol ... ฉันจะดูมัน
Oliver Ni

|vy¬dićú},ใช้งานได้ 10 ไบต์
Riley

ตกลงไม่มีใครไม่สามารถป้อนบรรทัดว่างเปล่าได้เพราะโค้ดไม่ทำงานสำหรับบรรทัดว่าง : หากใช้ศูนย์เดียวที่ใช้งานได้ดังนั้นจะต้องมีบางอย่างเกี่ยวกับส่วนหัวที่ไม่มีอยู่ (เช่นเดียวกับ @ Riley ที่แนะนำ 10 byter โดยวิธี)
Jonathan Allan

@JanathanAllan มีบางอย่างเกี่ยวกับวิธีการ|ทำงาน มันควรจะpush the rest of input as an array with stringsแต่มันหยุดที่บรรทัดว่าง ( TIO ) ฉันนำเรื่องนี้ขึ้นในห้องแชท 05AB1Eหากคุณต้องการทราบข้อมูลเพิ่มเติม
Riley

2

Python 3 , 95 ไบต์

lambda y:'\n'.join(re.sub('^\d',lambda x:' '*int(x.group()),z)for z in y.split('\n'))
import re

ลองออนไลน์!

-4 ไบต์โดยการขโมยแนวคิด regex จาก ThePirateBay


4
คุณขโมยจาก ThePirateBayวิธีที่ตารางได้เปิด
joH1

@ Moonstroke HAH ฮ่า ๆ ฉันไม่ได้สังเกตว่า: P
HyperNeutrino

2

เยลลี่ขนาด 19 ไบต์

V⁶ẋ
Ḣǹe?ØD;
ỴÇ€Yḟ0

ลิงก์ monadic ที่รับและส่งคืนรายการอักขระหรือโปรแกรมเต็มรูปแบบที่พิมพ์ผลลัพธ์

ลองออนไลน์!

อย่างไร?

V⁶ẋ - Link 1, make spaces: character (a digit)
V   - evaluate as Jelly code (get the number the character represents)
 ⁶  - a space character
  ẋ - repeat

Ḣǹe?ØD; - Link 2, process a line: list of characters
Ḣ        - head (get the first character and modify the line)
         -   Note: yields zero for empty lines
     ØD  - digit characters = "0123456789"
    ?    - if:
   e     - ...condition: exists in? (is the head a digit?)
 Ç       - ...then: call the last link as a monad (with the head as an argument)
  ¹      - ...else: identity (do nothing; yields the head)
       ; - concatenate with the beheaded line

ỴÇ€Yḟ0 - Main link: list of characters
Ỵ      - split at newlines
 Ç€    - call the last link (1) as a monad for €ach
   Y   - join with newlines
    ḟ0 - filter out any zeros (the results of empty lines)

beheaded lineนั่นคือคำที่แท้จริงใช่ไหม xD
HyperNeutrino

1
ทีนี้ก็ถึงตอนนี้ :)
Jonathan Allan

Ahahaha ฉันพยายามเอาชนะคุณและลงเอยด้วยวิธีแก้ปัญหาที่เหมือนกับ xD ของคุณ
HyperNeutrino


2

Haskell , 63 ไบต์

unlines.map g.lines
g(x:r)|x<';',x>'/'=(' '<$['1'..x])++r
g s=s

ลองออนไลน์! บรรทัดแรกคือฟังก์ชันที่ไม่ระบุตัวตนซึ่งแยกสตริงที่กำหนดเป็นบรรทัดใช้ฟังก์ชันgกับแต่ละบรรทัดและรวมบรรทัดผลลัพธ์ด้วยบรรทัดใหม่ ในgมันมีการตรวจสอบว่าตัวละครตัวแรกxของบรรทัดเป็นตัวเลข หากเป็นกรณีนี้['1'..x]ให้ผลตอบแทนสตริงที่มีความยาวเท่ากับค่าของตัวเลขxและ' '<$แปลงสตริงเป็นช่องว่างจำนวนมาก ในที่สุดส่วนที่เหลือของบรรทัดrจะถูกผนวกเข้า หากxไม่ใช่ตัวเลขเราอยู่ในสมการที่สองg s=sและส่งคืนบรรทัดที่ไม่ได้แก้ไข


2

งูหลาม 2 , 76 72 68 ไบต์

-4 ไบต์ขอบคุณ @ovs !

@DeadPossum แนะนำให้เปลี่ยนเป็น Python 2 ซึ่งบันทึกได้ 4 ไบต์เช่นกัน

แค่คิดว่ามันดีที่มีโปรแกรมเต็มรูปแบบที่แข่งขันได้ใน Python 2 ที่ไม่ได้ตรวจสอบอย่างชัดเจนว่าตัวอักษรตัวแรกเป็นตัวเลข นี่เป็นการอ่านอินพุตจากไฟล์, f.

for i in open('f'):
 try:r=int(i[0])*" "+i[1:]
 except:r=i
 print r,

ลองออนไลน์! (ความอนุเคราะห์จาก@ovs )


@ovs ขอบคุณสำหรับสิ่งนั้น
Mr. Xcoder

@ovs คุณเปลี่ยนอะไร (ฉันจะทำมันด้วยมือ)? มันบอกฉันว่าไม่สามารถถอดรหัส Permalink ได้
Mr. Xcoder

แทนที่จะพิมพ์ทุกรอบซ้ำฉันมอบหมายเอาต์พุตให้กับตัวแปรและพิมพ์ทั้งหมดในตอนท้าย
ovs

@ovs ฉันจัดการเพื่อรับ 72 bytes โดยการพิมพ์ซ้ำทุกขอบคุณสำหรับความคิดตัวแปร!
Mr. Xcoder

Python 2 เวอร์ชั่นprintจะให้68 ไบต์
Dead Possum

2

Java 8 , 105 99 97 93 ไบต์

บันทึกเพิ่มอีกไม่กี่ไบต์เนื่องจากคำแนะนำของ Nevay

s->{int i=s.charAt(0);if(i>47&i<58)s=s.substring(1);while(i-->48)s=" "+s;System.out.print(s);}

1
คุณมีข้อบกพร่องสองข้อในเวอร์ชัน golfed ของคุณ: การตรวจสอบตัวเลขต้องใช้และแทนที่จะเป็นหรือ; เครื่องหมายวงเล็บหลังจากการตรวจสอบตัวเลขหายไป นอกจากนั้นคุณสามารถบันทึกไม่กี่ไบต์โดยใช้s->{int i=s.charAt(0);if(i>47&i<58)for(s=s.substring(1);i-->48;s=" "+s);System.out.print(s);}(93 ไบต์)
Nevay

@Nevay คุณพูดถูก ขอบคุณ ฉันจะอัปเดตคำตอบของฉัน
CoderCroc

2

R , 138 128 ไบต์

-9 ไบต์ขอบคุณ CriminallyVulgar

n=readLines();for(d in grep("^[0-9]",n))n[d]=gsub('^.?',paste0(rep(' ',eval(substr(n[d],1,1))),collapse=''),n[d]);cat(n,sep='
')

นี่มันแย่มาก แต่ตอนนี้มันดีขึ้นแล้ว ... R คืออีกครั้งที่แย่มาก

ลองออนไลน์!


2
ฉันกำลังแสดงความคิดเห็นในนามของCriminallyVulgarผู้แนะนำรุ่น129- ไบต์แต่ไม่มีชื่อเสียงเพียงพอที่จะแสดงความคิดเห็น
Mr. Xcoder

@ Mr.Xcoder ขอบคุณและ @CriminallyVulgar!
จูเซปเป้

123 Bytes Apparently ตัวแทนสามารถใช้สตริงของ int สำหรับอาร์กิวเมนต์ที่สอง ???
CriminallyVulgar

@CriminallyVulgar huh มันอยู่ที่นั่นในเอกสารสำหรับตัวแทนตอนนี้ฉันตรวจสอบพวกเขาอีกครั้ง: "อินพุตอื่นถูกบังคับให้มีจำนวนเต็มหรือเวกเตอร์สองเท่า"
Giuseppe

2

Japt (v2.0a0), 11 10 ไบต์

Japt ชนะ Jelly และ 05AB1E ไหม ดูเหมือนจะไม่ถูกต้อง!

r/^\d/m_°ç

ทดสอบมัน


คำอธิบาย

การอินพุตสตริงโดยนัย U

r/^\d/m

ใช้ Regex แทนที่ ( r) การเกิดขึ้นทั้งหมดของตัวเลขที่จุดเริ่มต้นของบรรทัด ( mคือการตั้งค่าสถานะหลายบรรทัด- การgตั้งค่าสถานะถูกเปิดใช้งานโดยค่าเริ่มต้นใน Japt)

_

ผ่านการแข่งขันแต่ละครั้งผ่านฟังก์ชั่นซึ่งZเป็นองค์ประกอบปัจจุบัน

°

ตัวดำเนินการเพิ่ม postfix ( ++) สิ่งนี้จะแปลงZเป็นจำนวนเต็มโดยไม่เพิ่มสำหรับการดำเนินการต่อไปนี้

ç

ทำซ้ำอักขระเว้นวรรค Zครั้ง

เอาท์พุทสตริงผลลัพธ์โดยปริยาย


สามารถm@จะสั้นลง?
โอลิเวอร์

ไม่ในกรณีนี้ @Oliver; mนี่คือธงหลายคู่สายสำหรับ regex ไม่วิธีการแผนที่
ขนดก

1
@Oliver: r/^\d/m_î(หรือr/^\d/m_ç) จะสั้นกว่า 2 ไบต์ แต่Zเป็นสตริงดังนั้นน่าเสียดายที่มันไม่ทำงาน r/^\d/m_°çสำหรับการประหยัด 1 ไบต์ไม่ทำงานแม้ว่า :)
ปุย

°çเป็นเคล็ดลับที่น่าทึ่ง :-) ฉันขอแนะนำให้ใช้\dสำหรับ regex แต่นั่นอาจทำให้ธงหายไป ... บางทีฉันควรเพิ่มการสนับสนุนสำหรับธงใน regexes แบบชั้นเดียวเช่น\dm(ใช่แล้วและนั่น^ก็เกินไป) ... )
ETHproductions

@ETHproductions มันจะเป็นไปได้ / เป็นไปได้ที่จะทำให้การเปิด/ตัวเลือกใน RegExes?
ปุย

1

เยลลี่ขนาด 19 ไบต์

Ḣ⁶ẋ;µ¹µḣ1ẇØDµ?
ỴÇ€Y

ลองออนไลน์!

-5 ไบต์รวมขอบคุณความคิดเห็นของโจนาธานอัลลันและโดยดูที่โพสต์ของเขา

คำอธิบาย

Ḣ⁶ẋ;µ¹µḣ1ẇØDµ?  Main link
             ?  Ternary if
                if:
       ḣ1       the first 1 element(s) (`Head` would modify the list which is not wanted)
         ẇ      is a sublist of (essentially "is an element of")
          ØD    "0123456789"
                then:
  ẋ             repeat
 ⁶              ' '
Ḣ               n times where n is the first character of the line (head)
   ;            concatenate the "beheaded" string (wording choice credited to Jonathan Allan)
                else:
     ¹          Identity (do nothing)
    µ µ     µ   Link separators
ỴÇ€Y            Executed Link
Ỵ               Split by newlines
  €             For each element,
 Ç              call the last link on it
   Y            Join by newlines

ไม่จำเป็นต้องสลับอาร์กิวเมนต์:Ḣ⁶ẋ;
Jonathan Allan

The pop then head trick wont work if there is a line containing only a single digit character :( -- ;0Ḣ would work for one byte, maybe there is a single atom, I also tried ¹, no joy there
Jonathan Allan

1
@JonathanAllan Ah right. Thanks. ḣ1ẇØD works for the same bytecount \o/
HyperNeutrino

ṚṪ will work :)
Jonathan Allan

@JanathanAllan ใช้งานได้ดี :) แต่ฉันได้อธิบายไปแล้วสำหรับวิธีการของฉันดังนั้นฉันจึงขี้เกียจเกินกว่าที่จะเปลี่ยนมัน: P แต่ขอบคุณอยู่ดี :)
HyperNeutrino

1

Pyth,  16  15 bytes

jm.x+*;shdtdd.z

Try it online!


Explanation

jm.x+*;shdtdd.z   - Full program that works by reading everything from STDIN.

             .z  - Read all STDIN and split it by linefeeds.
 m               - Map with a variable d.
  .x             - Try:
     *;shd           - To convert the first character to an Integer and multiply it by a space.
    +     td         - And add everything except for the first character
            d - หากข้างต้นล้มเหลวเพียงแค่เพิ่มทั้งสตริง
j - เข้าร่วมด้วยการขึ้นบรรทัดใหม่

ลองมาตัวอย่างที่ควรจะง่ายต่อการประมวลผล พูดว่าอินพุตของเราคือ:

foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar

โปรแกรมข้างต้นจะทำสิ่งต่อไปนี้:

  • .z- ['foo bar foo bar', '1foo bar foo bar foo bar', '2foo bar foo bar foo bar foo bar']อ่านมันทั้งหมดและแยกได้โดยการขึ้นบรรทัดใหม่เพื่อให้เราได้รับ

  • เราได้ตัวละครแรกของแต่ละคน: ['f', '1', '2'].

  • ถ้าแปลงเป็นจำนวนเต็มเราจะทำซ้ำช่องว่างที่เป็นจำนวนเต็มคูณและเพิ่มส่วนที่เหลือของสตริง อื่นเราเพิ่งวางทั้งสตริง ['foo bar foo bar', ' foo bar foo bar foo bar', ' foo bar foo bar foo bar foo bar']ดังนั้นเราจึงมี

  • สุดท้ายเราเข้าร่วมโดยการขึ้นบรรทัดใหม่ดังนั้นผลลัพธ์ของเราคือ:

    foo bar foo bar
     foo bar foo bar foo bar
      foo bar foo bar foo bar foo bar
    

1
Haha, we beat Jelly :)
Mr. Xcoder

1

Cubically, 82 bytes

R3D1R1D1+0(?6{?7@7~:1+2<7?6{+35>7?6{:7-120?6{(B3@5B1-0)6}:0}}}?6!@7~-60=7&6+4-3=7)

Note: This will not work on TIO. To test this, use the Lua interpreter with the experimental flag set to true (to enable conditionals). There's currently a bug with conditional blocks on the TIO interpreter. When using the TIO interpreter, you should replace ?6! with !6 and &6 with ?6&, which keeps the byte count the same.

R3D1R1D1          Set the cube so that face 0 has value 1 and the rest of the values are easy to calculate

+0                Set the notepad to 1 so that it enters the conditional below
(                 Do
  ?6{               If the notepad is 1 (last character was \n or start of input)
    ?7@7              Output the current character if it's \n
    ~                 Get the next character
    :1+2<7?6{         If the input is >= '0'
      +35>7?6{          If the input is <= '9'
        :7-120            Set the notepad to the input - '0'
        ?6{               If the notepad isn't 0
          (                 Do
            B3@5              Output a space
            B1-0              Subtract 1 from notepad
          )6                While notepad > 0
        }                 End if
        :0              Set notepad to 1
      }                 End if
    }                 End if
  }                 End if

  ?6!@7             If the notepad is 0 (did not attempt to print spaces), print current character

  ~                 Get next character
  -60=7&6           If there is no more input, exit the program
  +4-3=7            Check if current character is \n, setting notepad to result
)                 Repeat forever

This isn't as short as the other Cubically answer, but I thought I'd give this a try anyway :D


What's going on with loops in the TIO interpreter?
MD XF

@MDXF ) jumps to the most recent ( rather than the matching one I believe. EDIT: I'm in the chat.
TehPers

@MDXF Maybe it was the conditional blocks, actually. I forgot, I'll update the answer. Regardless, they weren't matching up.
TehPers

1
All right, I'll look at that later. I'm currently finishing Cubically 2.
MD XF

@MDXF That's... really exciting to hear actually o_O
TehPers

1

><>, 60 bytes

!^i:0(?;::"/")$":"(*0$.
v"0"-
>:?!v1-" "o
;>:o>a=&10&?.i:0(?

Try it online!

How It Works:

..i:0(?;... Gets input and ends if it is EOF
...
...
...

.^......::"/")$":"(*0$. If the inputted character is a digit go to the second line
...                     Else go to the fourth
...
...

....        If it was a digit
v"0"-       Subtract the character "0" from it to turn it into the corresponding integer
>:?!v1-" "o And print that many spaces before rejoining the fourth line
...

.^..               On the fourth line,
....               Copy and print the input (skip this if it was a digit)
....v              If the input is a newline, go back to the first line.
;>:o>a=&10&?.i:0(? Else get the input, ending on EOF


0

Gema, 21 characters

\N<D1>=@repeat{$1;\ }

Sample run:

bash-4.4$ gema '\N<D1>=@repeat{$1;\ }' <<< 'foo bar foo bar
> 1foo bar foo bar foo bar
> 2foo bar foo bar foo bar foo bar
> 
> --------v
> 8|
> 8|
> 80
> 8,
> 7&'
foo bar foo bar
 foo bar foo bar foo bar
  foo bar foo bar foo bar foo bar

--------v
        |
        |
        0
        ,
       &

0

PHP, 83 chars

preg_replace_callback('/^\d/m',function($m){return str_repeat(' ',$m[0]);},$argv);

I think your code is not compliant with the input rules of this challenge, you should enclose this in a function with a $s arg or populate it with the input. And it doesn't print anything
LP154

@LP154 is using argv acceptable?
Petah

@Petah If I'm correct in assuming argv is the command line args, then yes.
totallyhuman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.