ตัวอักษรในภาษาการเขียนโปรแกรม


69

งานของเราคือการเขียนโปรแกรมที่พิมพ์ตัวอักษรในภาษาที่มีชื่อขึ้นต้นด้วยตัวอักษรแต่ละตัว (อังกฤษ) แต่ละตัวอักษร

อินพุต: ไม่มี

เอาท์พุท:

abcdefghijklmnopqrstuvwxyz

ขึ้นบรรทัดใหม่และต่อท้ายบรรทัดใหม่เป็นตัวเลือก

กฎ :

  • เกณฑ์การให้คะแนนตัวชี้วัดคือความยาวของการเขียนโปรแกรมภาษาที่ชื่อ , บวกความยาวของรหัส ดังนั้น C จะถูกประเมิน "การลงโทษ" ของ 1 ในขณะที่ GolfScript จะได้รับการประเมินโทษ 10
  • หนึ่งภาษา / การนำไปใช้ต่อคำตอบ สนับสนุนคำตอบหลายอย่าง
  • ภาษาการเขียนโปรแกรมควรมีอยู่ก่อนที่จะเขียนโพสต์นี้ในวันที่สิบแปดของเดือนเมษายน 2011
  • หากอักษรตัวแรกของชื่อภาษาการเขียนโปรแกรมไม่ใช่ตัวอักษรภาษาอังกฤษก็ไม่ควรรวมเข้าด้วยกัน มันจะถือว่าเป็นจดหมายแยกต่างหาก (หมายถึงการแข่งขันน้อย)
  • จะไม่มีการตอบรับจนกว่าจดหมายภาษาอังกฤษทุกฉบับจะมีทางออก

อันดับปัจจุบัน:

บอกฉันถ้าฉันหายไปใคร

กระดานแต้มนำอัตโนมัติ (ทดลอง)


1
เราได้รับอนุญาตให้พิมพ์ขยะไปยัง stderr หรือไม่?
Peter Taylor

@ Peter เทย์เลอร์: ไปถั่ว เพื่อตอบคำถามของคุณใช่การพิมพ์ขยะไปยัง stderr นั้นใช้ได้ (ตราบใดที่ stdout ถูกต้อง)
Joey Adams


2
เป็น*0*5AB1Eเช่นเดียวกับ*o*sabie: P?
Magic Octopus Urn

1
@MagicOctopusUrn ไม่สำคัญเนื่องจากกฎนี้: " ภาษาการเขียนโปรแกรมควรมีอยู่ก่อนการเขียนของโพสต์นี้ในวันที่สิบแปดของเดือนเมษายน 2011นี้ "
เควิน Cruijssen

คำตอบ:


13

K สำหรับK , 12 ตัวอักษร -> คะแนน: 13

`0:_ci97+!26

แน่นอนว่าคุณสามารถปรับโซลูชันของคุณให้เป็น A + ได้ใช่ไหม
Joey

การตั้งค่า A + เป็นเรื่องที่สนุกเล็กน้อย ฉันเคยทำมาก่อน แต่ฉันไม่รู้สึกอยากทำ (Owl, newLISP และ zshell ล้วนเป็นแบบครบวงจร)
Jesse Millikan

3
ฉันถือว่านั่นคือ k2 หรือ k3 ใน k4 / q คุณสามารถทำมันใน 7 1 .Q.a;ตัวอักษรด้วย
Aaron Davies

คุณไม่ต้องการ`0:หรือ1@ใน codegolf
ngn

25

P คือ (จริง ๆ ) สำหรับPiet - 57 ตัวแปลงสัญญาณ

รุ่นใหญ่ (ขนาดของ codel = 6)

p สำหรับ piet - ใหญ่

รุ่นเล็ก (codel size = 1)

p สำหรับ piet - เล็ก

ทดสอบกับเอริคล่าม Piet npietและพัฒนาด้วยPiet ผู้สร้าง

แก้ไข : นี่คือรุ่น "ติดตาม" (สร้างขึ้นด้วยnpiet -tpf) เพื่อให้คุณสามารถดูวิธีการทำงาน

การประหารชีวิตเริ่มต้นที่มุมบนซ้ายและเดินไปตามขอบตามเข็มนาฬิกา ขอบด้านบนและขอบด้านขวามีการตั้งค่า (การคำนวณค่าของa(97) ใช้ตัวแปลงสัญญาณค่อนข้างน้อย) ห่วงเริ่มต้นที่ขอบด้านล่างและไปที่ขอบซ้าย เมื่อถึงค่าของzโปรแกรมโปรแกรมเลี้ยวขวาเข้าไปในส่วนข้ามภายใต้ครั้งแรกPและสิ้นสุดลง

คลิกที่ภาพเพื่อขยายและดูรายละเอียด


Oooh, Piet เป็นคนดีเสมอ และคุณไม่ได้เกิดขึ้นกับมี Windows ไบนารีของ Piet Creator ที่วางอยู่รอบ ๆ ใช่ไหม? (ฉันขี้เกียจเกินไปที่จะตามล่าการพึ่งพาและสิ่งที่ต้องมีก่อนเพื่อเล่นอีกรอบ)
Joey

และนั่นไม่ใช่รหัส 400 จริงๆและ 57 รหัสหรือไม่ (ฉันไม่คิดว่าเรามีฉันทามติว่าจะนับ Piet ที่นี่ได้อย่างไร)
Joey

1
@ โจอี้ฉันจะดูว่าฉันสามารถสร้าง Piet Creator สำหรับหน้าต่างได้หรือไม่ ไม่นานมานี้ตั้งแต่ฉันทดสอบที่นั่น คุณพูดถูกเกี่ยวกับโคเดก ถ้าฉันจะวางโปรแกรมในบรรทัดมันจะเป็น 57 codels (ให้หรือไม่กี่) รุ่นข้างต้นเป็นมิตรมากขึ้นตา (เช่นช่องว่างใน langs อื่น ๆ ) บางทีการส่ง Piet ควรมีทั้งแหล่งที่มาน้อยที่สุดและสะดุดตา เราดีกว่าตัดสินใจเพราะฉันวางแผนหลายคำตอบ Piet มากขึ้น :)
เคซี่ย์

คุณสามารถเปิดคำถามเกี่ยวกับเมตาเพื่อขอคำอธิบายวิธีจัดการรหัส Piet :-) ฉันจะส่งโซลูชั่น Piet มานานแล้ว ยกเว้น pietdev ค่อนข้างบั๊กกี้และสำหรับ Piet Creator ฉันต้องการ Qt และอีกสองสามอย่างเพื่อสร้างมัน ;-) และการใช้โปรแกรมแก้ไขบิตแมปนั้นค่อนข้างยุ่งยาก ...
โจอี้

@Joey Piet Creator ยังคงต้องการการปรับปรุงที่สำคัญหลายอย่างเพื่อให้ยอดเยี่ยมอย่างแท้จริงหวังว่าฉันจะสามารถเพิ่มพวกเขาในไม่ช้า ฉันลงเอยด้วยการใช้ Piet Creator เป็นหลักแล้วใช้ Paint หรือ GIMP เพื่อย้ายบล็อคสี Pietdev เป็นแรงบันดาลใจหลักของฉันสำหรับพีซี การรับคำติชมบางอย่างเกี่ยวกับพีซีจะยอดเยี่ยมมากฉันจะได้หน้าต่างที่สร้างโดยเร็วที่สุด
Casey



12

W สำหรับช่องว่าง, 72 ตัวอักษร -> คะแนน: 82

ป้อนคำอธิบายรูปภาพที่นี่

[Sp][Sp][Sp][Tab][Tab][Sp][Sp][Sp][Sp][Tab][LF][LF][Sp][Sp][Tab][Tab][LF][Sp][LF][Sp][Tab][LF][Sp][Sp][Sp][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][Sp][LF][Sp][Sp][Sp][Sp][Tab][Tab][Tab][Tab][Sp][Tab][Tab][LF][Tab][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][LF][LF][Sp][LF][Tab][Tab][LF][LF][Sp][Sp][Sp][Sp][LF][LF][LF][LF]

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


6
ฉันจะคิดว่ามันชัดเจนจากความคิดเห็นที่ถูกลบตอนนี้พร้อมกับโซลูชันของฉันที่ฉันไม่เคยเขียนช่องว่างใด ๆ มาก่อน ชัดเจนว่าไม่.
Gareth

@Mego มีโอกาสใดบ้างที่เราจะสามารถถอดชื่อฉันออกได้เนื่องจากฉันไม่มีส่วนเกี่ยวข้องเลย?
Gareth

11

A สำหรับ APL,  14  11 ตัวอักษร / ไบต์ * →คะแนน 14

⎕UCS 96+⍳26

นี้ทำงานได้อย่างน้อยใน Dyalog และNars2000


* APL สามารถเขียนด้วยชุดอักขระแบบไบต์เดียว (ดั้งเดิม) ของตัวเองที่แมปสัญลักษณ์ APL กับค่า 128 ไบต์ด้านบน ดังนั้นเพื่อจุดประสงค์ในการให้คะแนนโปรแกรมของ N chars ที่ใช้อักขระ ASCII และสัญลักษณ์ APLเท่านั้นจึงถือได้ว่ามีความยาว N ไบต์


1
⎕aทำงานในAPLX
อดัม

พิมพ์ใหญ่และต่อท้ายบรรทัดใหม่ไม่จำเป็นเพื่อให้⎕Aการทำงานของ
Adám


8

R สำหรับ R, 19 →คะแนน: 20

cat(letters,sep="")

อีกวิธีหนึ่ง (20 ตัวอักษร): cat (ตัวอักษร, sep = "")
Paolo

ยังไม่lettersดีพอ ฉันไม่เห็นสเป็คที่ระบุผลลัพธ์จะต้องเป็นสตริงที่ต่อเนื่องกัน แน่นอนตัวอย่างที่ให้มาอยู่ในรูปแบบนั้น แต่ 'ขึ้นบรรทัดใหม่ต่อท้ายเป็นตัวเลือก' หรือไม่
Gaffi

@Gaffi: ฉันเชื่อว่าฉันใช้ภาษาอื่นในมาตรฐานเดียวกันในหัวข้อนี้กล่าวคือผลลัพธ์จะต้องเป็น "abc ... xyz" โดยไม่ต้องมีตัวละครเข้ามาแทรกแซง) ฉันคิดว่าฉันสามารถเปลี่ยนกฎและชนะการประกวดของฉันเองได้ แต่นั่นไม่สนุกเลย
Joey Adams

8

P สำหรับ Python 2, 33 ตัวอักษร -> คะแนน: 39

print'%c'*26%tuple(range(97,123))

1
นี่คือความยาวเท่ากันกับprint'abcdefghijklmnopqrstuvwxyz'...
nneonneo

@nneonneo ดังนั้น ... มันยังคงเล็กที่สุด! (แบ่งปันตำแหน่งกับรหัสที่น่าเบื่อและไม่สำคัญอื่น ๆ )
JBernardo

7

R ใช้สำหรับ Ruby, 13 ตัวอักษร -> คะแนน: 17

โซลูชัน Ruby 1.9 Matma Rexเกิดขึ้นกับ:

print *?a..?z

โซลูชัน Ruby 1.8 ดั้งเดิมของฉัน (15 ตัวอักษร -> คะแนน: 19):

$><<[*'a'..'z']

อันนี้ไม่ตรงกับเกณฑ์? เอาต์พุตมีอักขระเพิ่มเติม นอกจากนี้ถ้าตกลงก็เป็นได้$><<[*?a..?z]สำหรับ Ruby 1.9 (โกนหนวด 2 ตัวอักษร)
Matma Rex

1
print *?a..?zรุ่นที่ถูกต้องที่สั้นที่สุดที่ฉันสามารถตั้งครรภ์คือ ความยาวเท่ากันและที่ฉันแนะนำข้างต้น เราไม่สามารถใช้งานได้$><<เพราะ<<มีกฎที่สำคัญกว่าปกติและทุกอย่างก็ระเบิดขึ้น เราไม่สามารถใช้pหรือputsแทนprintเนื่องจากพวกเขาพิมพ์จดหมายทุกฉบับในบรรทัดแยกกัน
Matma Rex

ขออภัยเราควรพูดถึงว่านี่สำหรับ Ruby 1.8 ใน Ruby 1.8 Array#to_sนั้นเหมือนกับArray#joinดังนั้นมันจะพิมพ์ตัวอักษรโดยไม่มีตัวอักษรพิเศษ แต่วิธีแก้ปัญหา 1.9 ของคุณนั้นสั้นกว่านั้นจริง ๆ
Ventero

ผลลัพธ์คือ: codepad.org/atGFGVuQ
Nathan Osman

@George: ผลลัพธ์ของคุณมาจาก Ruby 1.8 (ซึ่งสามารถตรวจสอบได้ที่นี่: codepad.org/pvyqzaPP ) ตามที่กล่าวถึงการโพสต์นี่เป็นวิธีแก้ปัญหาสำหรับ Ruby 1.9
Ventero

7

F สำหรับปลา (> <>), 19 ตัวอักษร -> คะแนน: 23

เพราะมันเป็นภาษาที่สวยงาม!

30"`"1+::o&p&"y"(?;

ไม่ใช่คำตอบนี้ได้คะแนน 22 เพราะ<>>มีความยาวเพียงสามอักขระไม่ใช่สี่ มีเหตุผลที่คุณใช้ชื่อที่ยาวกว่านี้ในคะแนนหรือไม่
pppery

@ppperry ชื่อภาษาไม่สามารถเริ่มต้นด้วย F และเป็น<><ได้
flornquake

1
ชื่อของภาษา><>ไม่ใช่<><
TuxCrafting

ดูเหมือนจะไม่ได้ผลแค่พิมพ์aออกมา tio.run/##S8sszvj/39hAKUHJUNvKKl@tQE2pUknD3vr/fwA
Chris


6

S สำหรับ Scala, 16 ตัวอักษร => คะแนน 21

'a'to'z'mkString

18 ตัวอักษร => คะแนน 23

'a'to'z'mkString""

22 ตัวอักษร => คะแนน 27

('a'to'z')map(print _)




6

D สำหรับ dc, 17 ตัวอักษร→คะแนน: 19

97[dP1+dBD>x]dsxx

เอาต์พุต "ab" และออกจาก dc เวอร์ชัน 1.06.95
Wossname

@Wossname echo '97[dP1+dBD>x]dsxx' | dcทำงานใน dc เวอร์ชัน 1.07.1
BlackCap

6

C สำหรับ C, 36 35 ตัวอักษร→คะแนน: 36

main(a){for(;putchar(a+++64)-90;);}

คุณสามารถวางอักขระได้ 2 ตัวโดยสมมติว่า (argc) เท่ากับหนึ่งแทนที่จะต้องกำหนดค่าเริ่มต้น
Joey Adams

แต่นี่ยังไม่ได้รวบรวม ...
deceleratedcaviar

ที่ดีที่สุดที่ฉันจะได้รวบรวมคือ 59 หรือ 42 โดยไม่รวมถึง: #include <stdio.h> main () {สำหรับ (int a = 27; - a;) putchar (96 + a);}
deceleratedcaviar

แดเนียลใช้งานได้กับ MSVC 10 ที่นี่
Joey

5

W สำหรับ Windows PowerShell, 22 ตัวอักษร→คะแนน: 40

-join[char[]](97..122)

1
อืมไม่แน่ใจว่าจะสร้าง W หรือ P. นี้ไหม
Joey Adams

1
ในทางเทคนิคมันเป็น W เนื่องจากชื่อที่ถูกต้องของภาษา (สินค้า) เป็นWindows PowerShell ใช่มันทำให้ฉันเหมือนกัน
Joey





4

A สำหรับ AppleScript, 41 -> คะแนน: 52

display alert"abcdefghijklmnopqrstuvwxyz"

1
ฉันรู้ว่านี่เป็นเวลานานนับตั้งแต่การโพสต์ แต่คุณสามารถใช้งาน"abcdefghijklmnopqrstuvwxyz"ได้เนื่องจากค่าส่งคืนจะถูกส่งออกไปยังบานหน้าต่างผลลัพธ์
Addison Crump

4

M สำหรับ Matlab, 13 ตัวอักษร, คะแนน 19

disp('a':'z')

M สำหรับ Matlab, 18 ตัวอักษร, คะแนน 24

disp(char(97:122))

1
ฉันไม่มี MATLAB อยู่ในมือ แต่ฉันคิดว่าคุณต้องdisp(..)ป้องกันการแสดงผลans = นี้
Nabb

ถูกต้องเปลี่ยนแปลงในคำตอบ
jpjacobs

4

B สำหรับ BrainF ***, 38 + 9 = 47

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

สามารถลดเป็น31 + 9 = 40ถ้าเซลล์ล้อมรอบที่ 256:

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

4

B สำหรับ Bash: 4 + 16 = 20

printf %s {a..z}

หรือ 15 เพียง:

echo {a..z}

หากa b c ...อนุญาตให้แสดงผลของแบบฟอร์ม(ดังที่เห็นในคำตอบอื่น ๆ อีกมากมาย)


ฉันไม่คิดอย่างนั้น Linefeed เป็นตัวเลือกเอาต์พุตคือ "abcdefghijklmnopqrstuvwxyz"
ไม่ทราบผู้ใช้



3

J สำหรับ J, 14 ตัวอักษร -> คะแนน: 15

echo u:97+i.26

รำคาญกับทำไมecho? u:97+i.26เป็นโปรแกรม J ที่สมบูรณ์
Gregory Higley

5
เพราะนั่นไม่มีผลลัพธ์เมื่อเรียกใช้เป็นสคริปต์ (สำหรับฉันแล้ว)
Jesse Millikan

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