Python 108 ตัวอักษร
Python ไม่ได้ถูกสร้างขึ้นสำหรับความท้าทายนี้ ต้องการที่จะprint
? สงวนไว้ แล้วเราใช้กันยังstdout
ไงดี? มันจะมีค่าใช้จ่ายimport
... คุณคาดเดาไว้สงวนไว้ ดี ... ฉันอยู่บนระบบยูนิกซ์ดังนั้นฉันจึงสามารถเปิดไฟล์ descriptor 1 ซึ่งเป็น stdout ได้ สับ!
มนุษย์และซ้ำ? ไม่มีอะไรeval
นอกจาก ไม่มีห่วงแน่นอน แต่เราไม่สามารถแม้แต่จะกำหนดฟังก์ชั่นที่มีหรือdef
lambda
และเพื่อเพิ่มการดูถูกการบาดเจ็บเราไม่สามารถแม้แต่ใช้ความเข้าใจในรายการ! ฉันมักจะมองหาข้ออ้างที่จะใช้สิ่งต่าง ๆ เช่นmap(p.__mod__,...)
ใน code golf ... ความเข้าใจจะดีขึ้นเสมอ จนถึงตอนนี้ก็คือ
p=1
eval(compile("p+=1;open('/dev/fd/1','w').write('%s '%p*all(map(p.__mod__,range(2,p))));"*720,'','exec'))
ตอนนี้คุณอาจบ่นว่าexec
เป็นคำหลักแม้ว่าฉันไม่ได้ใช้คำหลัก (ฉันไม่ได้eval
เป็นแม้แต่exec
) ดีที่นี่เป็นทางออกที่ 117 'exec'
ตัวอักษรที่ไม่ได้ใช้
p=2
s="eval('('+s*(p<720)+')',open('/dev/fd/1','w').write('%s '%p*all(map(p.__mod__,range(2,p)))),{'p':p+1})";eval(s)