Tên ngôn ngữ lập trình đầu ra


45

Thử thách:

Trong ngôn ngữ lập trình bạn chọn, không được nhập và xuất tên ngôn ngữ lập trình của bạn.

Đủ công bằng, phải không?

Những hạn chế:

  • Bạn không thể sử dụng bất kỳ ký tự nào được bao gồm trong tên ngôn ngữ lập trình của bạn trong mã của bạn. Ví dụ: nếu tôi sử dụng Batch, tôi không được sử dụng ký tự 'B' 'a' t '' c '' h 'trong mã của mình. Lưu ý rằng đây là trường hợp nhạy cảm. Tôi vẫn có thể sử dụng char 'b' vì nó khác với 'B'.
  • Bạn có thể có "đầu ra rác" trước hoặc sau tên của ngôn ngữ
  • Số phiên bản không được tính là một phần của tên ngôn ngữ. Ví dụ: tôi có thể sử dụng số 3 trong mã trong câu trả lời của mình nếu đó là trong Python 3
  • Đầu ra của tên ngôn ngữ lập trình không phân biệt chữ hoa chữ thường.
  • Brute-buộc tất cả các kết hợp chữ cái có thể và hy vọng bạn có được tên ngôn ngữ của bạn bị cấm.

Kết quả ví dụ: (giả sử ngôn ngữ lập trình của tôi được gọi là Ngôn ngữ) (✔ nếu hợp lệ, khác)

  • Language
  • Body language is a type of non-verbal communication in which physical behavior, as opposed to words, is used to express or convey information. Such behavior includes facial expressions, body posture, gestures, eye movement, touch and the use of space.
  • Language 2.0 - © 1078 AD some company
  • foobar

Đây là do đó mã ngắn nhất sẽ thắng.


7
Các quy tắc về hạn chế trường hợp nhạy cảm là rất mơ hồ. Đó là chỉnh hình chính xác: BASIC Basic hay basic? Tôi khá chắc chắn rằng tôi có thể tìm thấy các ví dụ cho cả ba.
Cấp sông St

6
Bắt buộc "Chỉ cần để mã của bạn trống nhưng có một cờ như --versionkhông được phép"?
Mực giá trị

87
Có đầu ra không phân biệt chữ hoa chữ thường trong khi cấm tên ngôn ngữ theo trường hợp nhạy cảm cho phép các giải pháp nhàm chán chỉ xuất ra trường hợp tên ngôn ngữ được hoán đổi.
xnor

11
Bạn đã phạm sai lầm khi cho phép người dùng xuất dữ liệu rác. Tất cả những gì họ phải làm là sử dụng một ngôn ngữ trong đó trình biên dịch bao gồm tên bất cứ khi nào có lỗi. Thật tuyệt nhưng không phải là thử thách mà tôi đã hy vọng
Lynob

3
Câu hỏi này thực sự cần được chỉ định rằng "Mã" phải được chạy. Hầu hết các ngôn ngữ sẽ hiển thị tên của chúng trong kết xuất sử dụng nếu bạn không cung cấp bất kỳ mã nào - ví dụ "Java" hoặc "Groovy" tại dòng lệnh không có mã sẽ hiển thị tên chính xác, tuy nhiên nếu bạn chuyển mã (thậm chí " "mã) trống như trong (groovy -e" ") bạn sẽ nhận được phản hồi trống. Tương tự đối với các vấn đề biên dịch, việc sử dụng trình biên dịch hoặc đầu ra lỗi không có nghĩa là bạn đã viết một chương trình.
Bill K

Câu trả lời:


67

Đầu ra cho STDERR

Đầu ra cho STDERR hiện ở mức + 33 / -21 dưới dạng mặc định được phép, điều này là tích cực nhưng đang bị tranh cãi. Đây là câu trả lời CW để thu thập các câu trả lời chỉ gây ra lỗi trong ngôn ngữ có thông báo lỗi bao gồm tên ngôn ngữ.

Haskell, 1 byte

1

Lỗi:

Parse error: naked expression at top level
Perhaps you intended to use TemplateHaskell

Lua, 1 byte

1

Lỗi:

lua: .code.tio:1: syntax error near <eof>

(tên tệp không quan trọng)

Mẻ, 1 byte

~

Lỗi:

'~' is not recognized as an internal or external command,
operable program or batch file.

tinylisp, 5 byte

(c()1

Lỗi:

Error: cannot cons to Int in tinylisp

R, 1 byte

)

Lỗi:

Error: unexpected ')' in ")"

Mã byte Java, 0 byte

Lỗi:

Exception in thread "main" java.lang.ClassFormatError: Truncated class file

Groovy, 1 byte

a

Lưu ý rằng acó thể được thay thế bằng bất kỳ nhân vật khác

Lỗi:

groovy.lang.MissingPropertyException: No such property: a ...

MATLAB, 1 byte

\

Lỗi:

Error: Unexpected MATLAB operator.

PHP, 3 byte

<?=

Lỗi:

PHP Parse error:  syntax error, unexpected end of file in /home/runner/.code.tio on line 1

CJam, 1 byte

/

Lỗi:

/
^
RuntimeException: The stack is empty
Java exception:
java.lang.RuntimeException: The stack is empty
    at net.aditsu.cjam.CJam.pop(CJam.java:75)
    at net.aditsu.cjam.Op2.run(Op2.java:10)
    at net.aditsu.cjam.Block.run(Block.java:304)
    at net.aditsu.cjam.CJam.runCode(CJam.java:210)
    at net.aditsu.cjam.CJam.main(CJam.java:240)

Cành, 2 byte

Twig là một ngôn ngữ mẫu được viết bằng PHP. Có thể đây là một polyglot.

{{
{%
{#

Lỗi:

PHP Fatal error:  Uncaught exception 'Twig_Error_Syntax' with message [...] in [...][...]:n:
Stack trace:
#0 [...]

Thông báo khác nhau tùy thuộc vào chương trình bạn chọn.

Silos , 2 byte

x+

Hãy thử trực tuyến! Gọi một cách tầm thường hành vi không có giấy tờ. Silo là tên của ngôn ngữ.

Python, 6 byte

pYTHON

Vì hạn chế ký tự không phân biệt chữ hoa chữ thường và đầu ra không phải nằm trong trường hợp chính xác, đây là một câu trả lời hợp lệ. Thông báo lỗi mà nó tạo ra là như thế này:

Traceback (most recent call last):
  File ".code.tio", line 1, in <module>
    pYTHON
NameError: name 'pYTHON' is not defined

Hãy thử trực tuyến! (đầu ra cho tab 'gỡ lỗi')

JavaScript, 10 byte

jAVAsCRIPT

Điều này tạo ra thông báo lỗi sau hoặc tương tự trong tất cả các môi trường:

ReferenceError: jAVAsCRIPT is not defined

QBIC , 6 byte

?b(12)

Trong 6 byte, chúng ta có thể đặt lỗi QBIC gặp phải: 9 trên màn hình, biểu thị lỗi ngoài giới hạn.

ForceLang, 2 byte

()

Lỗi được tạo ra:

Exception in thread "main" lang.exceptions.IllegalInvocationException: null is not a function.
    at lang.ForceLang.parse(ForceLang.java:99)
    at lang.ForceLang.main(ForceLang.java:129)

Pip, 5 byte

1~`[`

(Lưu ý: điều này hoạt động trong phiên bản hiện tại kể từ bài viết này, 0.17.09.01 . Không đảm bảo trình thông dịch sẽ không thay đổi để xử lý lỗi này khác đi trong tương lai.)

Thử với regex khớp với mẫu không hợp lệ về mặt cú pháp. Lỗi được tạo ra sẽ trông giống như thế này:

Traceback (most recent call last):
  File "/opt/pip/pip.py", line 221, in <module>
    pip(interactive=False)
  File "/opt/pip/pip.py", line 206, in pip
    state.executeProgram(tree, args)
  File "/opt/pip/execution.py", line 56, in executeProgram
    returnVal = self.functionCall(mainFunction, cmdLineArgs)
  File "/opt/pip/execution.py", line 368, in functionCall
    returnVal = self.getRval(returnExpr)
  File "/opt/pip/execution.py", line 235, in getRval
    expr = self.evaluate(expr)
  File "/opt/pip/execution.py", line 213, in evaluate
    result = opFunction(*args)
  File "/opt/pip/execution.py", line 1134, in FIRSTMATCH
    matchObj = regex.asRegex().search(str(string))
  File "/opt/pip/ptypes.py", line 175, in asRegex
    self._compiled = re.compile(pyRegex)
  File "/usr/lib64/python3.6/re.py", line 233, in compile
    return _compile(pattern, flags)
  File "/usr/lib64/python3.6/re.py", line 301, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/usr/lib64/python3.6/sre_compile.py", line 562, in compile
    p = sre_parse.parse(p, flags)
  File "/usr/lib64/python3.6/sre_parse.py", line 855, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
  File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "/usr/lib64/python3.6/sre_parse.py", line 765, in _parse
    p = _parse_sub(source, state, sub_verbose, nested + 1)
  File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "/usr/lib64/python3.6/sre_parse.py", line 523, in _parse
    source.tell() - here)
sre_constants.error: unterminated character set at position 8

Stax, 2 byte

0u

Lỗi:

Stax runtime error: rational divide by zero

zh cũng hoạt động.

mực, 1 byte

~

~ở đầu một dòng đánh dấu rằng dòng là một câu lệnh sẽ được thực thi, thay vì văn bản sẽ được in. Cho dù phiên bản nào của TIO inklecate đang sử dụng, nếu không có gì sau đó ~, trình thông dịch gặp sự cố với lỗi sau:

System.NullReferenceException: Object reference not set to an instance of an object
  at Ink.InkParser.LogicLine () [0x000b1] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.OneOf (Ink.StringParser+ParseRule[] array) [0x0000a] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementAtLevel (Ink.InkParser+StatementLevel level) [0x00009] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser+<>c__DisplayClass134_0.<StatementsAtLevel>b__0 () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.Interleave[T] (Ink.StringParser+ParseRule ruleA, Ink.StringParser+ParseRule ruleB, Ink.StringParser+ParseRule untilTerminator, System.Boolean flatten) [0x00040] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementsAtLevel (Ink.InkParser+StatementLevel level) [0x0004f] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.Parse () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.Compiler.Compile () [0x00033] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.CommandLineTool..ctor (System.String[] args) [0x001a3] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
  at Ink.CommandLineTool.Main (System.String[] args) [0x00000] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at Ink.InkParser.LogicLine () [0x000b1] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.OneOf (Ink.StringParser+ParseRule[] array) [0x0000a] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementAtLevel (Ink.InkParser+StatementLevel level) [0x00009] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser+<>c__DisplayClass134_0.<StatementsAtLevel>b__0 () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.Interleave[T] (Ink.StringParser+ParseRule ruleA, Ink.StringParser+ParseRule ruleB, Ink.StringParser+ParseRule untilTerminator, System.Boolean flatten) [0x00040] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementsAtLevel (Ink.InkParser+StatementLevel level) [0x0004f] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.Parse () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.Compiler.Compile () [0x00033] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.CommandLineTool..ctor (System.String[] args) [0x001a3] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
  at Ink.CommandLineTool.Main (System.String[] args) [0x00000] in <d64e27e7788347b2a5377c9e19bbdcab>:0 

18
Không phải là chuỗi rỗng chứa trong tên của ngôn ngữ? : D
mbomb007

21
Các C và R là c leve r .
DLosc

2
@ mbomb007 nhưng nó không phải là một ký tự, do đó nó không phải là một ký tự được bao gồm trong tên của ngôn ngữ.
dùng253751

Phiên bản PHP có thể bị vô hiệu hóa, nếu tôi không nhầm. Sử dụng một cái gì đó như <??sẽ hiệu quả hơn và không thể bị vô hiệu hóa.
Ismael Miguel

10
"Mã byte Java, 0 byte ". Lần đầu tiên tôi thấy Java chiến thắng trên TẤT CẢ các ngôn ngữ khác được đề cập. :)
Kevin Cruijssen

49

SmileBASIC, 11 byte

sPsET.,1474

Tương đương với SPSET 0,1474. Đặt sprite 0 thành định nghĩa 1474, đó là logo SmileBASIC.

Ảnh chụp màn hình


43

MATL , 1 byte

Y

Đầu ra là thông qua STDERR, được cho phép theo mặc định .

Đầu ra từ trình biên dịch ngoại tuyến là

Error using matl_parse (line 339)
MATL error while parsing: Y not recognized at position 1
Error in matl (line 234)
    S = matl_parse(s, useTags); 

Hoặc thử trực tuyến! (mở rộng phần "gỡ lỗi").


6
Bạn có nên hợp nhất với điều này ?
wizzwizz4

@ wizzwizz4 Tôi không chắc. Tôi hỏi trong trò chuyện và có những hai trả lời , vì vậy nó không thực sự rõ ràng
Luis Mendo

1
vâng nhưng Y tho?
sagiksp

@sagiksp Bất cứ điều gì gây ra lỗi sẽ làm, chẳng hạn như Xhoặc Z. Điều này là do X, Yhoặc Zlà tiền tố của tên hàm hai char, do đó, Ybản thân a không hợp lệ
Luis Mendo

37

R, 1 byte:

T

Tlà một bí danh cho hằng số TRUE. Vì vậy, đầu ra cho ở trên là:

[1] TRUE

Vì rác được cho phép xung quanh tên, nên Rạn trong đó có tên ngôn ngữ.

( Như đã lưu ý trong một nhận xét ở nơi khác , hầu như bất kỳ chữ cái đơn và nhiều glyphs nào cũng hoạt động tốt như nhau vì chúng kích hoạt thông báo Lỗi Lỗi: Lỗi, có chứa Rọ.


31

HTML, 24 20 byte

&#72;&#84;&#77;&#76;


HTML, 16 byte

Như @Bob đã chỉ ra , các trình duyệt hiện đại sẽ nhận ra các thực thể HTML mà không có dấu chấm phẩy, mặc dù đó là HTML không hợp lệ về mặt kỹ thuật. Tất nhiên, nó hoàn toàn hợp lệ cho mã golf.

&#72&#84&#77&#76


HTML, 4 byte

Và tất nhiên, câu trả lời không thú vị.

html


Ngoài ra, xem câu trả lời CSS của tôi .


3
Bạn có thể lưu bốn ký tự bằng cách sử dụng thập phân thay thế : &#72;&#84;&#77;&#76;. Bạn có thể lưu thêm bốn ký tự bằng cách bỏ dấu chấm phẩy, với chi phí là HTML không hợp lệ về mặt kỹ thuật (nhưng vẫn hoạt động trong các trình duyệt hiện đại).
Bob

Tại sao không HTMLtính?
Ngừng làm hại Monica

1
@OrangeDog "Bạn không thể sử dụng bất kỳ ký tự nào được bao gồm trong tên ngôn ngữ lập trình của bạn trong mã của bạn"
darrylyeo

Nhưng htmlnên hợp lệ, giảm 12 điểm.
Christoph

3
@Clearer Đây là mã golf! Miễn là nó hoạt động trong ít nhất một môi trường, ai quan tâm liệu W3C có nghĩ rằng nó hợp lệ không?
darrylyeo

25

Vim, 0 byte



Khi bạn khởi động Vim, trình chỉnh sửa sẽ hiển thị màn hình giật gân trông như thế này:

Màn hình giật gân Vim

Bạn có thể thấy nó nói Vimở đây:

Màn hình vim giật gân với vim nổi bật

Câu trả lời trước:

Vim, 1 byte

<Ctrl-C>

Trong Vim 8, nhấn sẽ hiển thị Type :quit<Enter> to exit Vimở dòng cuối cùng. Tôi không hoàn toàn chắc chắn nếu điều này được tính.


1
Nó nên tính. Ctrl-C thực sự có mã ASCII riêng (mã 3, còn được gọi là ETX hoặc "cuối văn bản"), vì vậy đây là chương trình ASCII thuần túy (nếu không hoàn toàn có thể in ASCII). Bạn có thể sử dụng điều đó để chứng minh rằng chương trình dài một byte và hiển thị văn bản trên tổng số màn hình.

4
Từ khi nào "vim" là ngôn ngữ lập trình?
DepressionDaniel

4
@DepressionDaniel vim thực sự là một ngôn ngữ kịch bản nếu bạn nhìn sâu hơn vào bên trong. Tất cả các tổ hợp phím ưa thích đó là hướng dẫn => bạn đang lập trình khi bạn đang kiểm soát trình chỉnh sửa của mình.
bash0r

1
@DepressionDaniel là nó hoàn thành? Nếu không, tôi không nghĩ nó nên được tính.
Rõ ràng hơn

3
@dfeuer Tôi đã đồng ý với bạn, vì tôi đã đưa ra nhận xét đó hơn 2 năm trước.
Rõ ràng hơn

20

Python, 15 byte

Con trăn 2 (15)

exec"\150elp()"

Nó concatenates các dây sử dụng bát phân 150h"elp()"và chạy kết quả. Điều này in help()lệnh mà nói "Welcome to Python 3.5's help utility!", đáp ứng các yêu cầu.

Con trăn 3 (17)

exec("\150elp()")

Hãy thử trực tuyến!


Không chắc chắn help, nó chỉ hoạt động trong môi trường REPL.
xnor

Nó vẫn in ra Python. Đó là tất cả những gì cần thiết.

1
Không sao, tôi đã nhầm và nó hoạt động như một chương trình. Xin lỗi vì điều đó.
xnor

1
bạn đã sử dụng chữ 'p'
Matt

3
pđược phép nhưng Pkhông được. Quy tắc 1.

18

C, 0 byte.

/usr/lib/gcc/i586-linux-gnu/5/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status

Hãy thử trực tuyến!


tên ở đâu Hay bạn đề cập đến các nhân vật c trong đó?
Hy vọng hữu ích

3
Điều này nên được đánh dấu là C (gcc), vì các trình biên dịch khác có các thông báo khác nhau.
orlp

Meh, của bạn cđến từ các nguồn phụ thuộc rất nhiều vào việc thực hiện. Sẽ đẹp hơn nếu bạn ít nhất kích động một thông điệp có ctrong một số đầu ra soạn sẵn.
DepressionDaniel

1
@DepressionDaniel không xác định giới thiệu c e đến 'chính'
Loren Pechtel

@LorenPechtel Hội chợ đủ rồi, đã bỏ lỡ điều đó.
DepressionDaniel

17

Hả?, 0 byte



(không, không có gì trong khối mã đó)

Ngôn ngữ được đặt tên cho đầu ra của nó, vì vậy ...

Trong phần triển khai tôi đã kiểm tra , trình thông dịch sẽ lấy độ dài mod 8 của mỗi dòng của một tệp đã cho và chuyển đổi tùy thuộc vào kết quả. Đối với không, nó in Huh?. Vì nó loại bỏ các dòng mới, bạn cũng có thể thực hiện \nphiên bản 1 byte ( ).

Lưu ý rằng nó không xuất ra stderr hoặc vụ án hoặc bất kỳ mánh khóe nào khác. Chỉ là thông dịch viên rất bối rối của Huh? Cuối cùng cũng có ích.


13

V , 2 byte

¬U

Hãy thử trực tuyến!

Câu trả lời rõ ràng là:

év~

Hãy thử trực tuyến!

Đó là "Chèn chữ 'v' và chuyển đổi trường hợp". Tuy nhiên, vì bạn cho phép xuất rác trước / sau tên ngôn ngữ, điều này cũng hoạt động.

Các ¬lệnh có hai ký tự cho đầu vào, và chèn tất cả các ký tự ASCII giữa chúng. Nếu chúng tôi không cung cấp ký tự thứ hai, nó sẽ tự động mặc định thành ÿ(ASCII 0xff), vì vậy chương trình này sẽ chèn mọi ký tự trong mã hóa latin1 giữa Uÿ.


13

Brainfuck , 54 byte

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

Đầu ra brainfuck, giả sử một băng 8 bit mở bên trái. Hãy thử trực tuyến!

Như mọi khi, tín dụng một phần được gửi tới @ primo Xin chào, Thế giới! trả lời .

Các lựa chọn thay thế với vỏ khác nhau

Brainfuck (62 byte):

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

BrainFuck (68 byte):

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

12

MATLAB, 3 byte

ver

Đầu ra như sau. Thông tin không liên quan đã được thay thế bởi [...]). Một số phần của đầu ra có thể thay đổi tùy theo phiên bản, hộp công cụ được cài đặt, v.v.

-----------------------------------------------------------------------------------------
MATLAB Version: 8.6.0.267246 (R2015b)
MATLAB License Number: [...]
Operating System: [...]
Java Version: Java 1.7.0_60-b19 with [...]
-----------------------------------------------------------------------------------------
MATLAB                                                Version 8.6         (R2015b)
Communications System Toolbox                         Version 6.1         (R2015b)
Curve Fitting Toolbox                                 Version 3.5.2       (R2015b)
[...]
Wavelet Toolbox                                       Version 4.15        (R2015b)

Sử dụng av và e

Ngôn ngữ của bạn là Octave, vì vậy bạn không thể sử dụng ve.
JungHwan Min

6
Ái chà. Đã sửa bằng cách thay đổi ngôn ngữ thành Matlab (dù sao đó cũng là mục đích ban đầu của tôi)
Luis Mendo

12

Python, 27 53 49 48 45 byte

-3 byte từ @ wizzwizz4

exec eval('"IMpORT THIS".LOWER()'.swapcase())

In văn bản sau, có "Python" trên dòng đầu tiên.

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

1
@Arnauld đã sửa!
Mực giá trị

1
HELP()hoặc HELP(HELP)ngắn hơn.
Gurupad Mamadapur

Sẽ không có vấn đề gì nếu bạn trao đổi trường hợp của chuỗi nhập, bởi vì dù sao bạn cũng làm cho nó thành chữ thường. -3 byte.
wizzwizz4

@GurupadMamadapur câu trả lời Python 3 đã bao quát nó và tốt hơn (khá chắc chắn mã của tôi sẽ giống hệt nhau), vì vậy tôi không có tâm trạng sử dụng nó. Đoán tôi đang gắn bó import this.
Mực giá trị

@ValueInk Được rồi.
Gurupad Mamadapur

12

Python 2 (1 byte)

è

đầu ra ...:

đầu ra


Bạn có chắc đây chỉ là 1 byte?
Okx

1
Đã đồng ý. Đó là 2 byte trong UTF-8
mbomb007

Khóa này là "không phải ASCII" - thử 0xa0(nbsp) hoặc về cơ bản bất kỳ byte cao nào khác mà bạn thích và bạn sẽ gặp cùng một lỗi!
John P

3
Đây là 1 byte trong Win1252, thông báo lỗi cho thấy điều này đang sử dụng.
ATaco

10

> <> , 12 10 byte

"2,:o:2-o|

Điều này sẽ liên tục in> <> cho đến khi trình thông dịch hết dung lượng.

Hãy thử trực tuyến!

Phiên bản 12 byte dưới đây cho những người thích đầu ra sạch. Được đề xuất bởi Aaron (không có lỗi, 1 đầu ra)

":3+:o$1+oo;

Giải pháp tuyệt vời!
Emigna

@Emigna - Cảm ơn, phiên bản cuối cùng là sau một loạt các golf thất bại nhưng tôi khá thích nó vì với lỗi nó in> <> và cá: D
Teal pelican

Đẹp quá Đây là phiên bản 14 byte chỉ in một lần và không lỗi:"-o-o-o;_!\ _!
Aaron

@Aaron nếu bạn kiểm tra bản chỉnh sửa, phiên bản đầu tiên đã làm điều đó vào lúc 12. Tôi rất thích cách bạn trông sạch sẽ như thế nào :)
Teal pelican

Tôi thích phiên bản 12 byte của bạn (10 byte cũng vậy :)), tôi nghĩ rằng bạn nên bỏ nó vào câu trả lời của bạn ("dành cho những người thích đầu ra sạch, [...]")!
Aaron

9

JAVA, 1 byte

1

Đầu ra của thiết bị lỗi chuẩn là:

Main.java:1: error: class, interface, or enum expected
1
^
1 error
Error: Could not find or load main class Main
Command exited with non-zero status 1
    Command being timed: "/srv/wrappers/java-openjdk"
    User time (seconds): 1.40
    System time (seconds): 0.80
    Percent of CPU this job got: 40%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.40
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 44564
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 205
    Minor (reclaiming a frame) page faults: 11301
    Voluntary context switches: 2666
    Involuntary context switches: 1677
    Swaps: 0
    File system inputs: 78312
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 1 

14
Đây là đầu ra từ quá trình biên dịch, thay vì chạy chương trình. Tôi không biết liệu điều này được cho phép theo mặc định.
CAD97

2
Ngoài ra, nếu bạn chọn một phần mở rộng tệp khác, nó sẽ không xuất ra "java" phải không? (Không chắc chắn nếu điều đó có thể với java)
Jonas Schäfer

11
nếu bạn thay đổi từ java sang java mã byte, bạn có thể giảm một ký tự. cố gắng chạy tệp lớp trống sẽ ném java.lang.ClassFormatError
user902383

2
Các chương trình xuất ra stderr nên được chỉnh sửa thành câu trả lời này .
mbomb007

8

CSS, 25 byte

:after{content:'\43\53\53

Lưu ý rằng đánh dấu bổ sung được thêm vào đoạn mã Stack Overflow, khiến "CSS" được hiển thị nhiều lần. Mở một .htmltệp có nội dung

<style>:after{content:'\43\53\53

để xem kết quả như dự định.


7

bash CLI, 9

printf $0

Nếu bạn muốn có một tập lệnh thực tế và không chỉ là một lệnh tại dòng lệnh tương tác, thì bạn có thể làm điều này:

bash, 13

printf $SHELL

Đầu ra /bin/bash


1
echo $0nên hoạt động
squossish ossifrage

@squeamishossifrage Điều đó hoạt động ở dòng lệnh shell, nhưng trong một tập lệnh, nó sẽ xuất ra tên của tập lệnh.
Chấn thương kỹ thuật số

1
x $0hoạt động, giả sử không có thực thi được gọi là x trên đường dẫn. Trong trường hợp đó, thay thế bất kỳ chữ cái, chữ số hoặc ký tự không đặc biệt nào khác.
nigel 222

2
'h' là ký tự không rõ ràng đối với bạn và bạn đang sử dụng nó trong tiếng vang
user902383

2
$'ec\x68o' $0chữa chi tiết đó
thao tác

7

C, 15 byte

Biên dịch C trên máy Linux có ngôn ngữ tiếng Đức:

main(){main();}

Nó sẽ chạy đến một ngăn xếp tràn và in Speicherzugriffsfehler(tiếng Đức cho lỗi Phân đoạn) trên thiết bị lỗi chuẩn.


............ :-D
Alfe


6

Pip , 8 byte

'IWR C80

Đưa nhân vật IWRaps nó trong Chr ( 80), kết quả là PIP. Hãy thử trực tuyến!

Sử dụng Icảm giác hơi giống như gian lận, vì vậy đây là hai giải pháp 9 byte không sử dụng bất kỳ PpIi:

z@8WRz@15
(z8+^707)

Cả hai đầu ra pip. Tôi đặc biệt hài lòng với cái thứ hai:

    ^707   Split 707 into a list of characters        [7;0;7]
  8+       Add 8 to each one                          [15;8;15]
(z      )  Use list to index into lowercase alphabet  ["p";"i";"p"]
           By default, lists are printed without a separator

Để viết hoa đúng, chúng ta cần một giải pháp 10 byte :

'IWR C80Vx

Làm thế nào điều này hoạt động được để lại như là một bài tập cho người đọc. ; ^)


6

C #, 60 67 byte

class P{static void Main(){System.\u0043onsole.Write("\x43\x23");}}

Đây thực sự là câu trả lời của bạn, hay một lỗi đã làm hỏng câu trả lời của bạn?
auhmaan

@auhmaan Xin lỗi, đã sửa . Ban đầu tôi đã thử nghiệm trên LINQPad và quên rằng nó có một vài lần nhập không gian tên mặc định.
Bob

Tôi đã đề cập đến \u0043và tương tự
auhmaan

1
@auhmaan Đó là cố ý vì tôi cần Consolenhưng không thể sử dụng Ctheo quy tắc câu hỏi. Trong C #, bạn có thể sử dụng các chuỗi thoát Unicode trong các định danh.
Bob

3
Tôi chắc chắn rằng bạn có thể sử dụng một phương thức ẩn danh cho việc này, tôi không thể thấy một hạn chế yêu cầu một chương trình đầy đủ, vì vậy bạn có thể làm_=>System.\u0043onsole.Write("\x43\x23");
TheLethalCoder

6

Brainfuck, 105 byte

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

Dùng thử trực tuyến tại đây


7
Chà, không phải là vấn đề trong BrainFuck;)
devR Rich

@devR Rich hoàn toàn không;)
TrojanByAccident

@ mbomb007 tôi thấy.
TrojanByAccident

@ mbomb007 được cập nhật
TrojanByAccident

Có bất kỳ lý do cho sự quá mức ---trong đánh dấu của bạn?
FlipTack

5

R , 11 byte

cat("\x52")

Hãy thử trực tuyến!


version$l9 byte
djhurio

2
Có lẽ versionlà đủ (7 byte)
djhurio

1
Hoặc chỉ là 'r'. 3 byte.
Konrad Rudolph

@KonradRudolph Bạn không thể sử dụng ... chờ đợi; thông số kỹ thuật là trường hợp nhạy cảm trong việc kiểm tra nhưng không xuất ra ... Thông minh.
wizzwizz4

@ wizzwizz4 Vâng, nhưng tôi đã đăng một giải pháp chỉ cần một nhân vật , và thậm chí còn đúng.
Konrad Rudolph

5

J, 2 byte

   a.


┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������

a. trả về bảng chữ cái của ngôn ngữ J - một danh sách tích hợp tất cả các byte.

Bản gốc của tôi: 4 byte

   %:_1
0j1

Điều này chỉ có vẻ khá mát mẻ với tôi. Căn bậc hai ( %:) của âm 1 ( _1) là i ( 0j1).


1
2 byte : a.. In bảng chữ cái, rõ ràng bao gồm 'J'. Chắc chắn là không tuyệt vời mặc dù: /
Bolce Bussiere 26/03/18

Gotta golf nó. :-) Điều đó nói rằng, tôi gắn liền với câu trả lời ban đầu của tôi.
Dane

5

CƠ BẢN (Phổ ZX), 4 2 byte

gạch bỏ 4 vẫn là bình thường 4

Đã lưu 2 byte nhờ @ShaunBebbers.

Lưu ý: Trong bộ ký tự ZX Spectrum, các byte này hiển thị dưới dạng

0 PRINT

Khi bạn nhập cái này vào, Spectrum bắt đầu bằng cách phân tích một số tùy chọn theo sau là một dòng mã. Thông thường số dòng là 1..9999nguyên nhân khiến mã được thêm vào chương trình được lưu trữ. Tuy nhiên, nếu không có số dòng được cung cấp thì mã được thực thi ngay lập tức. Thật không may, một lỗi trong Spectrum có nghĩa là nó nhầm số dòng không có số dòng, nhưng nó vẫn cố thực thi số 0 như một phần của dòng mã, điều này là bất hợp pháp, do đó gây ra lỗi.

Phiên bản 4 byte trước đó tạo ra một lỗi thực sự thay vì dựa vào lỗi trình thông dịch:

õ°""

Lưu ý: Trong bộ ký tự ZX Spectrum, các byte này hiển thị dưới dạng

PRINT VAL ""

đầu ra nào

C Nonsense in BASIC, 0:1

bởi vì chuỗi rỗng không phải là biểu thức số hợp lệ. (Tôi có thể tất nhiên đã sử dụng bất kỳ tuyên bố rằng có một số nguyên duy nhất.) Nếu câu trả lời này là không thể chấp nhận, sau đó cho 6 byte bạn có thể viết một chương trình bao gồm một dòng duy nhất với một trong những từ khóa mà chấp nhận không có đối số, sau đó sử dụng POKEđể thay thế nó với một từ khóa bất hợp pháp, sau đó cố gắng vào RUNchương trình.


hoặc 0 REMtạo ra lỗi tương tự
Shaun Bebbers

1
@ShaunBebbers Điều đó thậm chí có vượt qua kiểm tra cú pháp không?
Neil

vâng, nó làm trên một Spectrum thực sự.
Shaun Bebbers

4

C 24 20 byte (Clang 3.8.1)

Cảm ơn @squeamish ossifrage đã giúp tôi tiết kiệm 4 byte.

main(){putchar(67);}

Thế còn putchar(67);?
squossish ossifrage

@squeamishossifrage yep, cảm ơn
Wade Tyler

Chỉ tò mò, nhưng cũng sẽ không printf('c')hợp lệ? Bạn không được phép sử dụng chữ hoa "C", nhưng bạn là chữ thường và kết quả là không phân biệt chữ hoa chữ thường.
Jocie

Chắc chắn nghe có vẻ như vậy, @jocie, nhưng 67ngắn hơn 'c':-)
Cody Grey

1
@Jocie printfcần một char *vì vậy tôi cần sử dụng""
Wade Tyler

4

Perl 5, 36 byte (35 + 1 cho -E)

$^X=~s/.+(.)(...)$/\U$1\E$2/;say$^X

Chạy với -Ecờ.

$ perl -E 'say$^X=~s/.+(.)(...)$/\U$1\E$2/r'
Perl

Các biến$^X là đường dẫn đến thực thi đang chạy chương trình hiện hành. Vì trình thông dịch Perl được gọi perl, sau đó chúng ta cần phải viết chữ hoa đầu tiên. Nhưng ucfirsthàm chứa một r, không được phép, vì vậy chúng ta phải sử dụng \U\Ebật và tắt chuyển đổi chữ hoa.

Chúng tôi không thể sử dụng công cụ /rsửa đổi s///để trả về chuỗi đã thay đổi vì rkhông được phép.

Điều quan trọng cần biết là tên của ngôn ngữ lập trình PerlPerl và tên của trình thông dịch là perl với chữ thường p. Không có PERL .


Về mặt kỹ thuật, tôi nghĩ rằng perl -vđáp ứng những hạn chế của các thách thức, nhưng đây là nhiều hơn nữa thú vị :) Mặc dù nó làm cho các giả định rằng không giữ trên tất cả các hệ thống (ví dụ $^X/home/foo/.plenv/versions/5.16.3/bin/perl5.16.3cho tôi, nhưng nó chỉ cũng có thể là /home/foo/pythonnếu tôi được xoắn như thế ).
ThisSuitIsBlackNot

@ điều này không chắc chắn nếu điều đó sẽ nằm trong quy tắc. Họ nói chọn một ngôn ngữ và làm công cụ. Nhưng perl -vkhông có gì ở Perl. Vì vậy, tôi nghĩ rằng nó không được tính. Nhưng tôi nghĩ có nhiều cách dễ dàng hơn. Về các hệ thống khác nhau, tôi nghĩ chúng ta có thể sửa nó bằng ma thuật regex hơn một chút.
simbabque

Có một loạt các giải pháp byte không dựa trên hành vi mặc định (ví dụ như in số phiên bản). Không có gì trong các quy tắc rõ ràng cấm nó. Nhưng nó chắc chắn nhàm chán và cảm thấy "gian lận".
ThisSuitIsBlackNot

Nhìn vào các quy tắc một lần nữa, bạn thực sự có thể làm uber nhàm chán perl -E'say$^X'.
ThisSuitIsBlackNot

2
Thế còn -E'say`$^X -v`'? Đó là một chương trình không thể chối cãi.
hobbs

4

Forth, 5 byte

WORDS

Dùng thử trực tuyến

In một danh sách của mỗi từ trong ngôn ngữ. Forthtình cờ nằm ​​trong danh sách (từ đầu tiên trên dòng 125), mặc dù tôi không biết nó làm gì.


4

R, 10 byte

citation()

Đầu ra:

Để trích dẫn R trong các ấn phẩm sử dụng:

Nhóm R lõi (2016). R: Một ngôn ngữ và môi trường cho tính toán thống kê. R Foundation cho máy tính thống kê, Vienna, Áo. URL https://www.R-project.org/ .

Một mục BibTeX cho người dùng LaTeX là

@Manual {,
title = {R: Ngôn ngữ và môi trường cho tính toán thống kê},
tác giả = {{Nhóm cốt lõi}},
tổ chức = {R Foundation cho tính toán thống kê},
address = {Vienna, Áo},
year = {2016 },
url = { https://www.R-project.org/ },
}

Chúng tôi đã đầu tư rất nhiều thời gian và công sức vào việc tạo R, vui lòng trích dẫn khi sử dụng nó để phân tích dữ liệu. Xem thêm 'trích dẫn ("pkgname")' để trích dẫn các gói R.

Khá dài dòng chỉ để có Rtên xuất hiện phải không?

Từ nhận xét của @ djhurio về câu trả lời này bằng R, versioncũng có mẹo.


3
"Đầu ra của tên ngôn ngữ lập trình không phân biệt chữ hoa chữ thường." Vậy tại sao không chỉ "r"? Hoặc tùy thuộc vào nghiêm ngặt "Bạn có thể có" đầu ra rác "trước hoặc sau tên của ngôn ngữ." bạn cũng có thể chỉ cần làm T.
Billywob

1
Theo nhận xét của @Billywob, tất cả những gì cần thiết cho đầu ra là một rhoặc R, vì vậy một cách tiếp cận khác là xuất ra STDERR thông qua lỗi cú pháp. )đầu ra Error: unexpected ')' in ")", trong đó có chứa một r.
rturnbull

@Billywob Tôi đồng ý với nhận xét của bạn, cũng như của rturnbull. Tôi đã viết câu trả lời này sớm hơn và đáng lẽ ra rằng, mặc dù nó làm cho mã và câu trả lời vô cùng dài, tôi thấy thật buồn cười khi xuất ra tất cả những thứ linh tinh này chỉ để làm cho "R" xuất hiện. Hơn nữa, đó là cách ngắn nhất để kiến ​​thức của tôi viết khiến R viết tên của nó theo mục đích.
Frédéric
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.