Lập trình lưỡng sắc (nghĩa đen)


33

Xem xét một câu hỏi được viết bằng tiếng Anh đơn giản có câu trả lời liên quan đến hai từ hoặc cụm từ chính xác (nhưng có khả năng thông minh) có thể được phân tách bằng từ 'và':

Q: Hai mặt của một đồng tiền là gì? A: đầu và đuôi

Q: những cách tốt nhất để đi du lịch là gì? A: máy bay và jetpack

Q: Tại sao một con quạ giống như một bàn viết? A: bởi vì có cả 'b' ở cả hai và 'n' ở cả

Mục tiêu

Viết chương trình mà khi chạy bình thường sẽ đưa ra một câu hỏi như vậy.

Khi mọi ký tự khác được xóa khỏi chương trình bắt đầu bằng ký tự thứ hai và kết quả được chạy lại, đầu ra sẽ là bất cứ thứ gì ở bên trái của 'và' trong câu trả lời.

Khi mọi ký tự khác bị xóa khỏi chương trình bắt đầu bằng ký tự đầu tiên và kết quả được chạy lại, đầu ra sẽ là bất cứ thứ gì nằm ở bên phải của 'và' trong câu trả lời.

(Bản thân 'và' không phải là đầu ra.)

Thí dụ

Nếu chương trình là

A1B2C3D4E5F6G7H8I9

và đầu ra của nó là

What are the two sides of a coin?

Sau đó, đầu ra ABCDEFGHInên heads, và đầu ra 123456789nên tails.

Quy tắc về câu hỏi và câu trả lời

  • Bạn có thể sử dụng các câu hỏi mẫu của tôi nhưng tôi khuyến khích bạn tự trang điểm.
  • Câu hỏi và hai phần trả lời:
    • tất cả phải khác biệt
    • nên là ngữ pháp phổ biến có nghĩa tiếng Anh
    • chỉ có thể chứa ASCII có thể in (hex 20 đến 7E)
  • Lý tưởng nhất là câu hỏi sẽ được viết hoa và chấm câu (nhưng câu trả lời không cần phải có).
  • Câu hỏi phải dài ít nhất 30 ký tự và có entropy trên hoặc bằng 3,5. (Nhập chuỗi, nhấn tính toán , tìm H (X) cuối cùng .)
  • Hai phần trả lời (không bao gồm phần [space]and[space]giữa chúng) phải có ít nhất 5 ký tự với entropy ở trên hoặc bằng 2.
  • Từ 'và' có thể xuất hiện trong một trong hai phần trả lời.

Quy tắc về mã

  • Không ai trong số 3 đoạn mã có thể:
    • chứa các bình luận hoặc bất cứ điều gì khác theo truyền thống bị bỏ qua bởi trình biên dịch / trình thông dịch (đừng lo lắng về việc thêm một dấu chấm phẩy hoặc hai, nhưng nếu bạn nghĩ đó là một bình luận thì có lẽ là vậy)
    • thoát khỏi chương trình giữa lúc thực thi
  • Mã này có thể chứa bất kỳ ký tự nào, bao gồm Unicode và ASCII không in được.
  • Nó có thể có số lượng ký tự lẻ hoặc chẵn.
  • Đầu ra đi đến thiết bị xuất chuẩn hoặc một tập tin hoặc bất cứ điều gì có vẻ hợp lý. Không có đầu vào.

Chấm điểm

Vì tôi sẽ không khuyến khích các câu trả lời được đánh gôn nhưng tôi muốn khuyến khích các câu trả lời thông minh hơn nữa, việc ghi điểm sẽ là một điều gì đó giữa cuộc thi đánh gôn và phổ biến:

Điểm = (upvotes - downvotes) - floor((bytes in code that outputs question) / 3)

Điểm cao nhất sẽ thắng.

(Sử dụng http://otherseff.in/byte-count làm bộ đếm byte.)


6
Gah, điều này rất khó thực hiện bằng ngôn ngữ "bình thường" như JavaScript. Xa nhất tôi có thể nhận được là một cái gì đó như x0=00;;. Thử thách lớn!
Doorknob

@Doorknob xin lỗi để xì hơi thuyền của bạn, nhưng 00;theo truyền thống bị bỏ qua bởi trình biên dịch ...
John Dvorak

2
Nghiêm túc ... "quả táo" có entropy của Shannon là 1,92 ???
John Dvorak

4
It may have an odd or even number of charactersCó một số ký tự không lẻ hoặc chẵn?
Ăn nhẹ

1
@Snack Điều đó cho phép mọi người biết rằng hai phần mã câu trả lời không cần phải có cùng độ dài.
Sở thích của Calvin

Câu trả lời:


55

Javascript (148 byte)

Tạo ra một số chữ vô nghĩa, với tác dụng phụ là tạo cảnh báo * cho câu hỏi. (các phần tách làm tương tự, nhưng tạo cảnh báo * cho mỗi câu trả lời).

"';"+alert( 'What is the ideal breakfast???')+/ " ;apl=e"rbta(k"esnc"r.armebplleadc ee g g s(" ) + " \/)k;e"/+ ",t'hceo 'c)a;kye= ailse rat (lpi)e "

Chia nhỏ:

";+lr('hti h da rafs??)/";p="baken".replace   (    /ke/ ,'co');y=alert(p) 

'"aet Wa steielbekat?'+  alert("scrambled eggs")+"\);"+"the cake is a lie"

 

Câu hỏi: What is the ideal breakfast???

Đáp án: baconscrambled eggs


4
Đây là loại chất lượng mà tôi yêu thích về trang web này! Nơi nào khác bạn có thể tìm thấy những người có thể làm điều này ??
Cruncher

1
Tôi đã tham gia các lớp học ngẫu hứng (có lẽ rõ ràng) và tôi sẽ cho bạn +1 ở đây vì giá trị hài hước. Nhưng như tất cả các kỹ sư khoa học khẩu độ đều biết, chúng tôi là những người thực hành khoa học ... vì vậy thực sự, phần thú vị nhất là chế tạo một khẩu súng gọn gàng . :-)
Bác sĩ Rebmu

29

Brainfuck (437 ký tự)

Tôi phải thú nhận rằng đây là chương trình Brainfuck đầu tiên của tôi thực sự có ý nghĩa. Chương trình được tối ưu hóa cao cho các hệ thống bộ nhớ thấp vì nó chỉ sử dụng 4 vị trí bộ nhớ.

Câu hỏi: What are the two main groups of trees?

Đáp án: conifersbroadleafs

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

Vòng lặp chính

Chương trình bao gồm vòng lặp chính (không thực sự là vòng lặp vì tất cả các khóa [] chỉ được thực hiện một lần) và hai phần.

-+[[        // let answers enter
            * SNIP interleaved answer sections *
]]
++-+[[      // let odd answer and question enter
    +-+-[[  // let question enter
            * SNIP question section *
    ]]
]]

Nếu bạn muốn kiểm tra các phần độc lập, bạn phải tính đến vòng lặp chính. Vị trí 0 chứa -1 trong câu trả lời chẵn, 1 trong câu trả lời lẻ và 2 trong phần câu hỏi.

Phần trả lời

Ngay cả câu trả lời (đã xóa hướng dẫn lẻ):

// location 0 contains minus 1 from main
// set location 1 = 10 * 10 minus 1 = 99 (c)
+++++++++++[>++++++++++<-]>-. // c
++++++++++++.-.     // on
-----.---.          // if
-.+++++++++++++.+.  // ers
<                   // goto 0 (which contains 0)
+-+-+-+-+-          // padding to match length of odd answer

Câu trả lời kỳ lạ (thậm chí đã xóa hướng dẫn):

// location 0 contains 1 from main
// set location 1 = 16 * 6 plus 2 = 98 (b)  location used for characters below 'l'
// set location 2 = 16 * 7 plus 2 = 114 (r) location used for 'l' and above
+++++++++++++++[>++++++>+++++++<<-]>++.>++. // br
---.<               // o
-.+++.              // ad
>---.<              // l
+.----.+++++.       // eaf
>+++++++.           // s
>                   // goto 3 (which contains 0)

Phần câu hỏi

Tôi quyết định lưu trữ không gian để phân tách vị trí vì giá trị của nó khác biệt lớn so với các nhân vật khác. Điều này cho phép không gian được in đơn giản với <.>.

// location 0 contains 2 from main
// set location 1 = 17 * 2 minus 2 = 32 (space)
// set location 2 = 17 * 5 plus 2 = 87 (W)   location used for characters below 'r'
// set location 3 = 17 * 7 minus 3 = 116 (t) location used for 'r' and above
+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++. // W
+++++++++++++++++.  // h
-------.>.<         // at
<.>                 // (space)
.>--.<++++.         // are
<.>                 // (space)
>++.<+++.---.       // the
<.>                 // (space)
>.+++.<++++++++++.  // two
<.>                 // (space)
--.------------.    // ma
++++++++.+++++.     // in
<.>                 // (space)
-------.>-----.     // gr
<++++++++.>+++.     // ou
<+.>--.<            // ps
<.>                 // (space)
-.---------.        // of
<.>                 // (space)
>+.--.<-..>+.       // trees
<<[<++>-]<-.<       // ? (value_of_space * 2 minus 1)

Cập nhật cuối cùng

Trong bản cập nhật cuối cùng của tôi, tôi đã tối ưu hóa các phép nhân để các hướng dẫn tối thiểu được sử dụng. Ngoài ra, bao gồm 'l' đến nhóm nhân vật thứ hai trong phần câu trả lời kỳ lạ đã chứng tỏ là sự cải thiện rất lớn. Tiết kiệm ký tự đơn trong câu trả lời kỳ lạ về cơ bản có nghĩa là hai ký tự trong toàn bộ chương trình, vì nó cũng làm giảm phần đệm từ câu trả lời chẵn. Tôi cũng đã loại bỏ một vài hướng dẫn không cần thiết từ đây và đó và tôi không nghĩ rằng tôi có thể tối ưu hóa mã nữa.


23

Mẻ - 84

Khá tự hào về điều này

Chương trình đầy đủ: hai mặt của một đồng tiền là gì? (bảng điều khiển)

echo What are two sides of a coin?  2>>xx  2>>cc&&eecchhoo  hteaaidlss  2>>xx  2>>cc

Chỉ dành cho Evens: Heads ('c' file)

eh htaetosdso  on 2>x >c&echo heads 2>x >c

Chỉ các tỷ lệ cược: đuôi (tệp 'x')

coWa r w ie faci? >x 2>c&echo tails >x 2>c

Hoạt động bằng cách chuyển hướng đầu ra lỗi sang một tệp trong cả hai trường hợp.


Đã nghĩ ra một cách để làm cho nó ngắn hơn, nhưng điều đó sẽ phải đợi đến ngày mai.
urous

3
Điều này có số điểm cao nhất cho đến nay: 12 - 28 = -16.
cần

20

Python - 104 96 (đánh gôn: 76)

Giải pháp của tôi khá đơn giản (và bằng cách nào đó có thể đọc được):

"";print 'What is the color of a zebra?' ;""
paraianat= "' b l a c k '"
aparaianat="'w h i t e'"

Đầu ra:

What is the color of a zebra?
black
white

Thành thật mà nói, tôi đã tìm thấy ý tưởng cho dòng đầu tiên trong câu trả lời của bitpwner.


Thay thế thậm chí dễ đọc hơn: - 113 105 97

"";print 'What is the color of a zebra?' ;""
"p r i n t ' b l a c k '" ;"p r i n t ' w h i t e '"

Thậm chí thay thế ngắn hơn: - 86 76

"";print'What is the color of a zebra?';""
"""";;pprriinntt''bwlhaictke''"""

"Bàn cờ" cũng đáp ứng các yêu cầu.
Martin Ender

3
@ MartinBüttner Ngựa vằn. :-P
David Richerby

Ồ, tôi thích zebra. Và nó phù hợp độc đáo với một phiên bản "đánh gôn" với câu hỏi chính xác là 30 ký tự. Vì vậy, tôi sửa đổi một chút giải pháp của tôi. :)
Falko

1
Chuỗi ba trích dẫn không có ý kiến, nhưng chuỗi nhiều dòng. Vì chúng cũng được sử dụng làm chuỗi doc , nên chúng có thể bị lẫn lộn với các bình luận.
Falko

1
Câu hỏi cập nhật chỉ dài 29 ký tự.
Dennis

15

Rebmu : 79 ký tự HOẶC (37 + chiều dài (p1) + 2 * max (chiều dài (p2), chiều dài (p3)))

Trước tiên tôi sẽ đưa ra giải pháp 79 ký tự hỏi bạn phải học ngôn ngữ nào? (entropy 4.0, 30 chữ cái không bao gồm ?) và cung cấp cho bạn các đề xuất của Rebol và [Red] :

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} pp{{[RReebdo]l}}

Một chiến thuật độc đáo có sẵn ở đây mà không phải bằng các ngôn ngữ khác xuất phát từ việc lợi dụng thực tế là niềng răng xoăn là một dấu phân cách chuỗi không đối xứng, có thể lồng nhau một cách hợp pháp:

my-string: {"It's cool," said {Dr. Rebmu}, "for MANY reasons--like less escaping."}

Điều đó cho phép tôi tạo ra một giải pháp tổng quát, có thể hoạt động dễ dàng trên bất kỳ chương trình nào không sử dụng trình tự thoát. Phiên bản 79 ký tự đủ đơn giản để tắt, nhưng để chứa đúng nguồn chương trình tùy ý cho các chương trình p2 và p3 bạn cần mẫu đầy đủ. Nếu chúng ta sử dụng nó, nó sẽ có 87 ký tự:

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} ddoo{{pp{{[RReebdo]l}}}}

Các mô hình cho việc sử dụng hình thức chung này là nếu bạn có ba văn bản nguồn gốc của nhân vật tuần tự có độ dài biến (hãy sử dụng một ví dụ như AAA, BBBBB, CCCCCCC), bạn có thể mã hóa chúng như một cái gì đó dọc theo dòng:

DD  11  DD :do dd {dd  {AAAqt}} ddoo{{BCBCBCBCBC C C}}

(Lưu ý: Mặc dù mô hình này sẽ không hoạt động mà không điều chỉnh các chương trình sử dụng ký tự thoát, nhưng đây không phải là một lỗ hổng nghiêm trọng. Bắt một dấu ngoặc trái không khớp trong một chuỗi được phân định bởi dấu ngoặc yêu cầu một cái gì đó như {Foo ^{ Bar}... nhưng bạn có thể dễ dàng viết lại bằng cách sử dụng ký hiệu chuỗi thay thế "Foo { Bar"và các trường hợp kết hợp có thể được quản lý bằng cách dán cùng một hỗn hợp các chuỗi không thoát.)

Vậy ... một ví dụ thì sao? Khi hình thức chung đã có sẵn, chương trình 573 ký tự này đã được lắp ráp chỉ trong vài phút từ 3 giải pháp golf mã trước đó:

DD 11 DD: làm dd {dd {rJ N 0% rN Wa1m2j S {\ x /} D00 Hc & [u [Ze? Wa Qs ~ rpKw [isEL00c [skQd2k] [eEV? KQ [tlQ]] pcSeg - b00 eZ 1 5] 3] prRJ [si ~ dSPscSqFHs] eZ 1 [s + dCa + wM2cNO]]] Va | [mpAp2j] prSI ~ w { } Ls2w Wl h01tiVsb01n -1 chRV [sn [{N sbeo [tIt0l1eV} 0e5gXN1 01L {5s0} C {1} 0 {0 Do5f0 0bMe1e0r0} 0 [0 [0 [0 [0 [0 [0] [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[] {K, j} b P {. } lf EZ - - n [N m {G otothestoreandbuysome more}] {T akeencedownandpassitar ound} c B w P lf]]}}

Nếu bất cứ ai muốn thử viết chương trình đó bằng ngôn ngữ của họ và nghĩ rằng họ có thể đánh bại 573, hãy cho tôi biết. Tôi sẽ trả lại cho bạn một danh tiếng lớn nếu bạn làm thế - giả sử ngôn ngữ bạn chọn không phải là Rebmu, vì tôi biết những chương trình đó không phải là tối thiểu. :-)

Khoảng cách "lãng phí" mà bạn nhận được ở cuối là những gì xảy ra khi p2 và p3 có độ dài không cân bằng. Nhưng cả 3 chương trình đều có kích cỡ khác nhau trong trường hợp này, vì vậy không có một cặp đôi tốt nào để chọn cho p2 / p3. (Tôi đã chọn những dữ liệu này vì không có dữ liệu bên ngoài làm đầu vào, chẳng hạn như mê cung hoặc bất cứ thứ gì, không phải chúng có độ dài tương tự nhau. bạn không phải viết chương trình mới ...)

Làm thế nào nó hoạt động

(Lưu ý: Tôi đã bắt đầu với một cách tiếp cận "sáng tạo" hơn, không được sắp xếp hợp lý nhưng trông thú vị hơn. Tôi đã chuyển nó sang một mục trên blog của mình vì mô tả phương pháp này đã dài.)

Một chìa khóa ở đây là thủ thuật "mã eval như một chuỗi" như một số mục khác, nó chỉ có con át chủ bài của dấu phân cách chuỗi không đối xứng. Tôi sẽ bắt đầu bằng cách giải thích hoạt động của trường hợp 80 ký tự.

Đây là chương trình "toàn bộ", điều chỉnh khoảng trắng cho khả năng đọc của trường hợp này:

DD 11                    ; assign 11 to dd (about to overwrite again)
DD :do                   ; make dd a synonym for DO (a.k.a. "eval")

; eval a string as source code that ends with QUIT (QT)
dd {dd  {p{Which languages must you learn?}qt}}

; we'll never get here, but whatever's here must be legally parseable
pp{{[RReebdo]l}}

Ở đây chúng tôi kết thúc việc đặt DD thành một từ đồng nghĩa với DO (còn gọi là "eval"). Nhưng mẹo nhỏ là khi các chương trình giảm một nửa chạy, chúng sẽ chạy mã chạy với tác dụng duy nhất là xác định D thành chữ 1 vô hại.

Đây là những gì mã chars lẻ tạo ra, khoảng trắng lại được điều chỉnh:

D 1                      ; assign 1 to d
D d                      ; assign d to itself, so it's still 1
d                        ; evaluates to integer, no side effect
{d pWihlnugsms o er?q}   ; string literal, no side effect
p {Rebol}                ; print "Rebol"

Và đây là mã chars chars:

D 1                      ; assign 1 to d
D:od                     ; URL-literal (foo:...), no side effect
d                        ; evaluates to integer, no side effect
{{hc agae utyulan}t}     ; string literal (well-formed!), no side effect
p {[Red]}                ; print "[Red]"

Đó thực sự là trường hợp đối với chương trình không giảm một nửa, dd {dd {(arbitrary code)qt}}sẽ thực thi bất kỳ mã nào bạn muốn. Tuy nhiên, có hai cuộc gọi để đánh giá thay vì chỉ một. Đó là bởi vì trong khi các dấu ngoặc nhọn lồng nhau hoạt động tốt trong mã xen kẽ, chúng làm rối tung hành vi xấu của DO. Bởi vì:

do {{print "Hello"}}

Sẽ tải chuỗi dưới dạng một chương trình, nhưng chương trình đó kết thúc chỉ là hằng chuỗi {print "Hello"}. Do đó, mẹo tôi sử dụng ở đây là lấy DD của tôi (giữ cùng giá trị hàm với DO) và chạy nó hai lần. Người bán hàng nhai ở các phần khác nhau của chuỗi nhưng họ không nhai cả nếu độ chẵn / lẻ là chính xác cho nội dung và bởi vì những gì còn lại bên ngoài chuỗi sau khi chia đôi chỉ là hằng số tích phân dmà chúng vô hại.

Với mẫu này, không có thách thức nào trong việc viết hành vi chương trình khi nó không bị cắt làm đôi - bạn có thể đặt bất cứ thứ gì miễn là độ dài ký tự của mã là chẵn (lẻ nếu bạn đang đếm QT, là QUIT). Nếu bạn cần lấy số chẵn từ một số lẻ, hãy ném vào một khoảng trắng (vì vậy thực sự có +1 trong công thức của tôi ở trên p1 cho độ dài chương trình lẻ của p1) . Thủ thuật dường như sẽ viết mã xen kẽ đó sau đó, phải vượt qua trình phân tích cú pháp nếu nó không bị giảm một nửa. (Nó sẽ không được chạy vì QT, nhưng nó phải được LOAD trước khi nó được thực thi.)

Trường hợp này là tầm thường; pptải tốt như một biểu tượng mặc dù nó không được xác định và được chia thành pđể in trong mỗi nửa chương trình. Nhưng chúng ta có thể thực hiện một mẹo khác chỉ bằng cách sử dụng một chuỗi ký tự một lần nữa. Các chương trình giảm một nửa vẫn có DO được định nghĩa bình thường, vì vậy chúng tôi cũng có thể nói:

ddoo{{pp{{[RReebdo]l}}}}

Bằng cách có phần duy nhất được trình phân tích cú pháp chọn trong toàn bộ trường hợp là từ tượng trưng ddoovà chuỗi ký tự, sau đó chúng ta có thể xen kẽ bất kỳ hai chương trình nào chúng ta muốn bên trong chuỗi đó theo nghĩa đen và không chọc giận trình phân tích cú pháp. Các phiên bản giảm một nửa sẽ chỉ nói:

do{p{Rebol}}

..và ...

do{p{[Red]}}

Như tôi nói, phần này có vẻ quen thuộc với các giải pháp khác coi các chương trình là chuỗi và đánh giá chúng. Nhưng trong trường hợp của cuộc thi, khi các chương trình bạn đóng gói chứa các chuỗi lồng nhau, sẽ ném vào các cờ lê cho chúng. Ở đây, điều duy nhất khiến bạn gặp rắc rối là sử dụng lối thoát thông qua dấu mũ ( ^) ... có thể dễ dàng làm việc xung quanh.


(Ghi chú 'gian lận' nhỏ: Tôi đã thêm QT cho "QUIT" để đối phó với vấn đề này. Thực ra, tôi đã cố tình xóa từ viết tắt để bỏ trước đó ... bởi vì bằng cách nào đó tôi nghĩ rằng nó chỉ tốt cho việc sử dụng bảng điều khiển và chỉ sử dụng không gian hai chữ cái nếu nó không có trong REPL. Tôi thêm nó vào vì tôi thấy tôi đã sai, đặc biệt là không thêm nó vào trường hợp này. Tuy nhiên, trước khi thay đổi đó, nó sẽ dài hơn 2 ký tự. Khi tôi lần đầu tiên đăng giải pháp, có một lỗi trong Rebmu khiến nó không thực sự hoạt động mặc dù nó đáng lẽ phải ... bây giờ nó hoạt động.)


Bạn thực sự tạo ra ngôn ngữ lập trình của riêng bạn?
lên tiếng vào

2
@ tjt263 Người ta nghĩ tốt hơn về "mã hóa" golf-code của ngôn ngữ Rebol hiện có . Mọi người đã làm những điều tương tự như với Pyth , về cơ bản viết tắt Python. Nhưng Rebmu có một điểm khác biệt khá thú vị ở chỗ nó thực sự có thể tải được bởi trình phân tích cú pháp Rebol và "tương thích". Bạn có thể đột nhập vào Rebol bất cứ lúc nào ở giữa nó, xem ví dụ Đồng hồ cát . Rất vui được thảo luận về nó trong trò chuyện Rebol và Red nếu bạn muốn.
Bác sĩ Rebmu

15

Perl 186 139 135

"";print'What are the best things in life?';""&&pprriinntt("'hceraurs ht hyeo ulra meennetmaiteiso'n s   o f   t h e i r   w o m e n ")

Những điều tốt nhất trong cuộc sống là gì?

"pitWa r h ettig nlf?;"&print('crush your enemies'                 )

đè bẹp kẻ thù của bạn

";rn'htaetebs hnsi ie'"&print"hear the lamentations of their women"

nghe những lời than thở của người phụ nữ của họ

Sử dụng câu trả lời ít dài hơn:

Perl 79 72

"";print'What are my preferred weapons?';""&&pprriinntt("'smwaocredss'")

What are my preferred weapons?(30Byte, H (X) = 3,76) swords(H (X) = 2,25) và maces(H (X) = 2,32)


9

Con trăn - 139 103

"";print'What are the ingredients for success?';""; ";" ;id=='"RUaniincboorwnss'";;pprriinntt  id++"'"'

What are the ingredients for success?-> UnicornsRainbows

Kiểm tra:

c="\"\";print\'What are the ingredients for success?\';\"\"; \";\" ;id==\'\"RUaniincboorwnss\'\";;pprriinntt  id++\"\'\"\'"
exec c        # What are the ingredients for success?
exec c[::2]   # Unicorns
exec c[1::2]  # Rainbows
print 
print c[::2]  # ";rn'htaeteigeinsfrsces'";"";d="Unicorns";print d+''
print c[1::2] # "pitWa r h nrdet o ucs?;" ; i='Rainbows';print i+""

Phiên bản cũ:

# What are the ingredients for success?
"";print(('What are the ingredients for success?'));""; ";" ;"pHrEiRnEt (C'OUMnEiSc oZrAnLsG'O)"; ";" ; "p,r iTnOtN(Y' RTaHiEn bPoOwNsY'.)"
# Unicorns
";rn('htaeteigeinsfrsces')";"";print('Unicorns');"";", TONY THE PONY."
# Rainbows
"pit(Wa r h nrdet o ucs?);" ; "HERE COMES ZALGO" ;  print('Rainbows')

6

Haskell, 117

Phải làm việc với mô hình chức năng của Haskell có nghĩa là mọi thứ phải được gán cho một biến hoặc nhận xét bằng các dòng --hoặc chặn {- -}nhận xét; có chức năng vô nghĩa chạy mà không có sự phân công là ra. Vì vậy, để giữ cho mình lành mạnh, tôi giữ câu hỏi và câu trả lời ngắn gọn như các quy tắc cho phép.

Câu hỏi: Những gì tôi không thể có đủ?

main=putStrLn{---}"What can I not have enough of?"{- }
=u"Scrank=e"sS"h
omeasi"n
=mpauitnS=tpru taSntprt tmLi

-----}

"Giày" và "bánh":

mi=uSrn--"htcnInthv nuho?{ 
uSrn="Shoes"
main=putStr mi
--}
anpttL{-}Wa a  o aeeog f"-}="cakes"
main=putStr anpttL
---

NB Sự xuất hiện của crank"Tôi không thể có đủ những gì?" không nên được xem là có ý nghĩa


1
Nhận xét không được phép
tự hào

Và làm thế nào cái thứ hai là cú pháp haskell hợp lệ?
tự hào

mã ban đầu có một khối nhận xét không được tiết lộ vì cặp đóng nằm trong một nhận xét dòng. mã "bánh" thậm chí không giống mã - không phải là chức năng? ký hiệu = ở đâu trong định nghĩa của nó? không phải nó thực sự được gọi là anpttLWa sao?
tự hào

@proudhaskeller Bỏ lỡ quy tắc về ý kiến. Xin lỗi vì điều đó. Chương trình đầu tiên không có khối bình luận không được tiết lộ. Nó phân tích tốt Dòng ý kiến ​​là vô nghĩa trong khối ý kiến. Cái thứ hai là hợp lệ vì nhận xét dòng là hợp lệ. anpttL là một chuỗi. Đưa ra nhận xét khối và bạn sẽ thấy nó bằng "bánh". Wa trong bình luận khối, vì vậy, không, nó không thực sự là anpttLWa.
ý

2
@proudhaskeller Đầu của tôi cho phép GHCi thực hiện công việc thay mặt nó.
ý

4

Lisp (76 ký tự)

Câu hỏi 31 ký tự, mỗi câu trả lời 6 ký tự ⟹ độ dài - tải trọng = 33

'(: (pprriinncc''fmuacghesnitaa))':(princ "What is your favorite pink hue?")

Tôi muốn sử dụng màu sắc yêu thích của bạn là gì? Nhưng, thậm chí kéo dài sang chính tả tiếng Anh, nó chỉ đạt tối thiểu 30 ký tự cho độ dài câu hỏi và tôi cần một câu hỏi có độ dài lẻ để cân bằng các dấu ngoặc kép.

Họ nói Common Lisp là dài dòng, nhưng bạn sẽ không nghĩ như vậy bởi lớp lót này. Nó thậm chí không bị xáo trộn, bạn chỉ cần chèn một chút khoảng trắng để xem những gì được trích dẫn và những gì được thực hiện.

Nhiều triển khai Lisp sẽ hét lên màu sắc, bởi vì chúng làm cong các biểu tượng thành chữ hoa. Nếu điều đó làm phiền bạn, hãy đổi ''fmuacghesnitaathành ""fmuacghesnitaa"".


Bởi vì câu hỏi này có một thành phần bỏ phiếu, tôi đã trả lời nó để thu hút sự chú ý để thử và nhận được nhiều phiếu hơn. Nhưng tiền thưởng đã hết và vì tôi không thể cho mình điểm :-) Tôi sẽ đưa nó cho mục nhập của bạn dựa trên ngôn ngữ tổ tiên của Rebmu và khuyến khích bạn kiểm tra nếu bạn chưa từng thấy trước đây! codegolf.stackexchange.com/a/36114/57
Tiến sĩ Rebmu

3

SỐ LIỆU 295

Câu hỏi: Những món tráng miệng tốt nhất để nướng ngay bây giờ là gì? Trả lời: bánh brownies và bánh quy.

Giải thích: Các lệnh trong STATA được phân định bởi các dòng mới.
Trong khi "//" là một nhận xét trong STATA, "///" sẽ cho trình biên dịch tiếp tục dòng tiếp theo và đưa nội dung của nó vào lệnh hiện tại.

Các lệnh trong STATA thường có thể được viết tắt đến mức chúng được coi là đủ duy nhất để có thể khác biệt (vì vậy "tạo" trở thành "g", "toàn cầu" trở thành "gl" hoặc "glo", "chụp" trở thành "nắp", " hiển thị "trở thành" di ", v.v.). Lệnh hiển thị hiển thị văn bản ra màn hình. Lệnh chụp bắt tất cả các lỗi (bao gồm cả lỗi cú pháp), đó là lý do tại sao chương trình này biên dịch đúng.

Tôi đoán nếu bạn muốn có được sự kén chọn, bất kỳ "/" bổ sung nào sau 3 lần đầu tiên liên tiếp trong một dòng sẽ bị trình biên dịch bỏ qua. Ngoài ra, trong chương trình "brownies", về mặt kỹ thuật + "" là một nhận xét. Nhưng tôi khẳng định rằng nó vẫn được tính bởi vì lệnh bắt vẫn sẽ khiến nó không liên quan ngay cả khi đó không phải là một nhận xét.

Cảm ơn đã đọc lời giải thích thực sự dài của tôi. Bây giờ cho mã:

"Các món tráng miệng tốt nhất để nướng ngay bây giờ là gì?"

g   a = "g   q   /b/a/" 
g l= "b = ""b r o w n i e s "
g   c = "g   /b/a/" 
g lpo= "d = ""c o o k i e s "
g   e = "c a p  "  /////
 +  "d i ""$ b "
g   f = "c a p  "  /////
 +  "d i ""$ d "
g   g = "c a p  "  /////
 + "c a p   / / /  "+ "/ / /"
di "What are the best desserts to bake right now?"

"brownies"

g a="    ba"
gl b="brownies"
    g /// 
 p="  "       
g e="   " //
 di "$b"
    cap ///
+" "  
g g="   " //
  cap ///   +"  "
i"htaetebs esrst aergtnw"

"bánh quy"

    g q /// 
 ="  "        
g c="  ba"
glo d="cookies"
    cap ///
+" "  
g f="   " //
 di "$d"
    cap  ///
+ "       " ///
d Wa r h etdset obk ih o?

2

Ksh (82 ký tự)

Câu hỏi 35 ký tự, mỗi câu trả lời 5 ký tự ⟹ độ dài - tải trọng = 37

ec=\'o'(;)eehc(h)oe cChroi m$e1;; '\'
echo  What\'s the  country\'s worst problem?

Tôi lạm dụng cú pháp định nghĩa hàm ngoài POSIX. Dash và bash không thể lấy nó nhưng ksh (miền công cộng hoặc ATT) thì có thể.

Không có gì đáng chú ý đang diễn ra, chỉ là một chút tiếng vang. Lãng phí không, muốn không.


2

PowerShell 88

"" > $x;{What is my favorite equipment?};"" >> ${x}

${XsXwXoXrXdX};;;${XsXhXiXeXlXdX}

Thiết bị yêu thích của tôi là gì? (30 ký tự, H (X) = 4.0314)

"  x{hti yfvrt qimn?;"> {}
{sword};$XXXXXXX

kiếm (5 ký tự, H (X) = 2.32193)

">$;Wa sm aoieeupet}" >$x
$XXXXXX;;{shield}

khiên (5 ký tự, H (X) = 2,58496)

Trên chương trình đầy đủ, nó chuyển hướng các chuỗi rỗng thành một biến không tồn tại ${x}(các trích dẫn cho các chuỗi trống đó được sử dụng để tạo thành một chuỗi vô nghĩa được chuyển hướng sang một khối trống {}hoặc biến không tồn tại $xtrên các phiên bản chẵn / lẻ), sau đó in câu hỏi và khai báo 2 biến không sử dụng (được in và đặt cạnh một biến không sử dụng khác $XXXXXXhoặc $XXXXXXXtrong các trường hợp khác nhau).


1

GolfScript, 51 byte

"Which are the sides of a coin? ".;""thaeialdss""

Đầu ra

Which are the sides of a coin? 

Làm thế nào nó hoạt động

.;nhân đôi chuỗi và xóa bản sao. ""đẩy một chuỗi trống. thaeialdsslà không xác định, vì vậy nó không làm gì.

Chars lẻ

"hc r h ie faci?";"heads"

Đầu ra

heads

Làm thế nào nó hoạt động

; xóa chuỗi đầu tiên khỏi ngăn xếp.

Ngay cả ký tự

Wihaetesdso  on ."tails"

Đầu ra

tails

Làm thế nào nó hoạt động

Wihaetesdsoonlà noops. .nhân đôi chuỗi trống trên ngăn xếp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.