Nhiều hơn và ít hơn là nhiều hơn


72

Bất kỳ ai cũng có thể làm cho đầu ra của một chương trình lớn hơn bằng cách thêm các ký tự, vì vậy hãy làm ngược lại chính xác.

Viết chương trình đầy đủ, chức năng bên trong hoặc đoạn trích cho môi trường REPL bằng ngôn ngữ bạn chọn đáp ứng các tiêu chí sau:

  1. Mã của bạn phải dài ít nhất 1 ký tự.

  2. Chạy mã gốc tạo ra x ký tự đầu ra thành STDOUT (hoặc thay thế gần nhất), trong đó 0 ≤ x <+ .

  3. Việc xóa bất kỳ ký tự đơn tùy ý nào khỏi mã gốc sẽ dẫn đến mã hợp lệ, điều này tạo ra ít nhất x + 1 ký tự đầu ra cho STDOUT.

  4. Cả mã gốc lẫn các sửa đổi đều không thể tạo ra bất kỳ đầu ra lỗi nào, thành STDOUT, STDERR, syslog hoặc ở nơi khác. Các ngoại lệ duy nhất cho quy tắc này là cảnh báo trình biên dịch.

    Chương trình của bạn có thể không yêu cầu bất kỳ cờ hoặc cài đặt nào để chặn đầu ra lỗi.

    Chương trình của bạn có thể không chứa bất kỳ lỗi nghiêm trọng nào, ngay cả khi chúng không tạo ra bất kỳ đầu ra nào.

  5. Cả mã gốc và các sửa đổi phải có tính xác định và kết thúc cuối cùng (không có vòng lặp vô hạn).

  6. Cả mã gốc lẫn sửa đổi đều không được yêu cầu nhập bất kỳ loại nào.

  7. Các chức năng hoặc đoạn mã có thể không duy trì bất kỳ trạng thái nào giữa các lần thực thi.

Xem xét rằng nhiệm vụ này là tầm thường là một số ngôn ngữ và hoàn toàn không thể ở những người khác, đây là một .

Khi bỏ phiếu, vui lòng tính đến "độ ngắn tương đối" của mã, nghĩa là, một câu trả lời ngắn hơn nên được coi là sáng tạo hơn một câu trả lời dài hơn trong cùng một ngôn ngữ .


2
Mặc dù giải pháp 1 byte rất ấn tượng, nhưng sẽ ấn tượng hơn khi xem ai có thể đưa ra tỷ lệ x: x + nie cao nhất với độ dài đầu ra bình thường so với độ dài đầu ra trung bình khi loại bỏ bất kỳ một ký tự nào. Thêm một thách thức cho câu hỏi này theo ý kiến ​​của tôi.
Trent

@FizzBuzz Easy: 111111111111111111^111111111111111111(nếu bạn có nghĩa là tỷ lệ thấp nhất).
jimmy23013

2
Aw, chỉ cần chú ý 'không có vòng lặp vô hạn.' Tôi đang làm việc để tạo một chương trình> <> sẽ tạo đầu ra nhanh hơn nếu loại bỏ một ký tự, để sau một klệnh không đổi , đầu ra của mỗi chương trình lớn hơn đầu ra của bản gốc từ đó trở đi (vì cái kia các chương trình sẽ lặp nhanh hơn hoặc đầu ra nhiều hơn mỗi vòng lặp). Nó trông khá thú vị. Có lẽ tôi sẽ xem liệu tôi có thể hoàn thành nó hay không, và thực hiện một thử thách khác.
mbomb007

Một số liệu chấm điểm thú vị cho thử thách này có thể là "các nhân vật độc đáo nhất, các mối quan hệ có chiều dài ngắn nhất". Sau đó, chúng tôi sẽ cố gắng để có được tất cả các ký tự trong một chuỗi bằng chữ.
lirtosiast

Một chức năng bên trong có nghĩa là gì?
dfeuer

Câu trả lời:


94

Bất kỳ REPL nào với thao tác XOR caret, 5 byte

11^11

11^11là tất nhiên 0. Chỉ có các khả năng khác là 1^11hoặc 11^110, hoặc 1111tự tạo ra.


7
Chơi tốt, frageum. Chơi tốt
Alex A.

13
Minus cũng sẽ làm điều đó.
Martin Ender

11
Tương tự,99|99
Sp3000

@ Challenger5 -10dài hơn 0.
Martin Ender

@MartinEnder ơi, tôi hiểu rồi. Vì một số lý do, tôi nghĩ rằng nó phải là một con số lớn hơn.
Trái cây Esolanging

55

TI-CƠ BẢN, 3 1

"

Khi dòng cuối cùng của chương trình là một biểu thức, máy tính sẽ hiển thị biểu thức đó. Nếu không, máy tính sẽ hiển thị Donekhi chương trình kết thúc. Biểu thức ở đây là chuỗi rỗng, nhưng nó cũng có thể hoạt động với bất kỳ số có một chữ số nào.

2 byte:

isClockOn

Tương tự như trên nhưng với mã thông báo 2 byte.

3 byte:

ππ⁻¹

In 1do nhân lên ngụ ý. Có thể được gia hạn vô thời hạn bằng cách thêm các cặp ⁻¹. Dưới đây cũng làm việc.

√(25
e^(πi
⁻ii
ii³
2ππ   
cos(2π

Giải pháp dài hơn:

11/77►Frac
ᴇ⁻⁻44
cos(208341   //numerator of a convergent to pi; prints "-1"

Có lẽ cũng có những giải pháp đa dòng nhưng tôi không thể tìm thấy.


Tôi không quen thuộc với TI BASIC. Bạn đang đếm sqrt và ngoặc đơn là một ký tự?
Cấp sông St

6
Có, sqrt và dấu ngoặc đơn nằm cùng một mã thông báo, được lưu dưới dạng một byte trong bộ nhớ của máy tính và được nhập bằng một phím bấm.
lirtosiast

8
cuối cùng là một cách để ngăn chặn thông điệp Xong phiền phức đó!
Faraz Masroor

1
Không có Donemã thông báo; máy tính hiển thị Donekhi hoàn thành thực hiện bất kỳ chương trình nào mà không có biểu thức trên dòng cuối cùng (bao gồm cả chương trình trống).
lirtosiast

48

CJam, JavaScript, Python, v.v., 18 byte

8.8888888888888888

Các đầu ra trong CJam là:

8.8888888888888888 -> 8.88888888888889
8.888888888888888  -> 8.888888888888888
88888888888888888  -> 88888888888888888
.8888888888888888  -> 0.8888888888888888

JavaScript và Python hoạt động theo những cách tương tự. Nó không cạnh tranh trong JavaScript và Python, nhưng không dễ để tìm thấy một cái ngắn hơn trong CJam .


16
Lạm dụng điểm nổi đẹp!
nderscore

31

Octave, 5 byte

10:10

(x: y) đưa ra mảng các số giữa x và y theo gia số 1, do đó, từ 10 đến 10, phần tử duy nhất là 10:

> 10:10
ans = 10

Khi đối số thứ hai nhỏ hơn đối số thứ nhất, quãng tám sẽ in ma trận trống và kích thước của nó:

> 10:1
ans = [](1x0)

> 10:0
ans = [](1x0)

Khi một ký tự được xóa khỏi số đầu tiên, có nhiều phần tử hơn trong mảng:

> 1:10
ans = 1 2 3 4 5 6 7 8 9 10

> 0:10
ans = 0 1 2 3 4 5 6 7 8 9 10

Khi dấu hai chấm bị xóa, số sẽ tự trả về:

> 1010
ans = 1010

1
cũng có giá trị trong R
mnel

30

Kính hiển vi, 1 byte

h

Điều này không tạo ra thông số, vì nó hngăn chặn việc in ấn ngầm của ngôn ngữ. Loại bỏ ký tự duy nhất tạo ra một chương trình có đầu ra là 0\n.

Tôi sẽ cố gắng đưa ra một câu trả lời tốt hơn sau.

CHỈNH SỬA NGÀY 17 THÁNG 11:

Điều này cũng hoạt động trong microscript II, ngoại trừ, thay vì mang lại 0\n, chương trình trống mang lại null.


22

Bình thường, 3 byte

cGG

Gđược preinitialized với các chữ cái viết thường trong bảng chữ cái. clà hàm chia.

cGGchia bảng chữ cái theo các lần xuất hiện của bảng chữ cái, kết thúc bằng ['', ''](8 byte).

Khi tham số thứ hai bị thiếu, ctách chuỗi bằng khoảng trắng, tab hoặc dòng mới. Vì không ai trong số chúng xuất hiện G, đầu ra cho cG['abcdefghijklmnopqrstuvwxyz'](30 byte).

GGchỉ cần in hai lần bảng chữ cái trên hai dòng riêng biệt: abcdefghijklmnopqrstuvwxyz\nabcdefghijklmnopqrstuvwxyz(53 byte).

Dùng thử trực tuyến: Trình diễn


16

Python REPL, 6 byte

Không phải là ngắn nhất, nhưng đây là một câu trả lời lạm dụng điểm nổi khác:

>>> 1e308
1e+308
>>> 11308
11308
>>> 11e08
1100000000.0
>>> 11e38
1.1e+39
>>> 11e30
1.1e+31

Nhưng...

>>> 11e308
inf

14

JavaScript (và nhiều hơn nữa), 5byte

44/44 hoặc là

44/44 -> 1
44/4  -> 11
4444  -> 4444
4/44  -> 0.09090909090909091


11

Chiều dài , 5 byte

00000

Độ dài của chương trình là 5 tương ứng với chương trình brainf *** ,đọc kết thúc ký tự đầu vào và kết thúc mà không có đầu ra.

Xóa bất kỳ kết quả char nào trong mã 0000có độ dài 4 tương ứng với chương trình brainf *** .in ra một ký tự (mã hóa 0) và chấm dứt.

Các unary tương đương sẽ là 0000000000000(13 số không) bởi vì bạn phải thêm vào trước một hàng đầu 1với độ dài nhị phân của đoạn code để 101trở thành 1101.


9

PHP, 6 byte

Tôi đã theo dõi nhóm này trong một vài tuần và ngạc nhiên về các kỹ thuật lập trình của bạn. Bây giờ tôi phải đăng nhập, có một vài thứ tôi có thể làm, xin lỗi :-) Tuy nhiên, đây có thể là bài viết cuối cùng của tôi ở đây ...

<?php 

(lưu ý khoảng trắng sau giây p)

Điều này xuất ra chuỗi rỗng. Loại bỏ bất kỳ ký tự đầu ra văn bản mà không có ký tự. Lưu ý rằng nó có thể tạo ra các lỗi HTML (nội dung không được trình duyệt hiển thị ví dụ. <?ph).

Tôi cũng đã thử với echothẻ. I E. ví dụ.:

<?= __LINE__;;

Cái này đầu ra 1. Nếu =được bỏ qua, <? __LINE__;;là đầu ra. Tuy nhiên, việc xóa bất kỳ ký tự hằng số ma thuật nào sẽ dẫn đến E_NOTICE : Lưu ý: Sử dụng hằng số LNE không xác định - giả định ' LNE ' trong ...

Nếu thông báo không được coi là lỗi (điểm 4 của quy tắc), điều này cũng được áp dụng :-)


Ồ, thật thông minh. Tôi đoán một linefeed cũng sẽ làm việc. Nếu nhiệm vụ là tạo HTML , điều này sẽ không hợp lệ. Tuy nhiên, PHP có thể được chạy từ dòng lệnh, giống như bất kỳ ngôn ngữ lập trình nào khác, nơi đầu ra được in đơn giản ra màn hình.
Dennis

@Dennis PHP xuất ra bất cứ điều gì . Bạn luôn có thể sử dụng CTRL-U trong trình duyệt của mình để xem đầu ra. HTML có thể không hợp lệ, nhưng trên thực tế chương trình không có (không có <HTML>thẻ, v.v.)
Voitcus

1
Quan điểm của tôi là không cần thiết phải có trình duyệt. Chỉ cần thực hiện php test.php. Mã thứ hai không hợp lệ bằng cách này. Câu hỏi không cấm lỗi nhưng đầu ra lỗi , nghĩa là lỗi, cảnh báo, thông báo, v.v.
Dennis

2
#!trong một tập tin kịch bản cũng hoạt động.
jimmy23013

9

Python, 10 8 byte

256**.25

Hoạt động trong Python và bạn bè. Cảm ơn Jakube đã chỉ ra cách làm cho nó nhỏ hơn 2 byte.

Từ IDLE:

>>> 256**.25
4.0
>>> 26**.25
2.2581008643532257
>>> 56**.25
2.7355647997347607
>>> 25**.25
2.23606797749979
>>> 256*.25
64.0
>>> 256*.25
64.0
>>> 256**25
1606938044258990275541962092341162602522202993782792835301376L
>>> 256**.5
16.0
>>> 256**.2
3.0314331330207964

ban đầu tôi có cái này (10 byte):

14641**.25

Từ IDLE:

>>> 14641**.25
11.0
>>> 4641**.25
8.253780062553423
>>> 1641**.25
6.364688382085818
>>> 1441**.25
6.161209766937384
>>> 1461**.25
6.18247763499657
>>> 1464**.25
6.185648950548194
>>> 14641*.25
3660.25
>>> 14641*.25
3660.25
>>> 14641**25
137806123398222701841183371720896367762643312000384664331464775521549852095523076769401159497458526446001L
>>> 14641**.5
121.0
>>> 14641**.2
6.809483127522302

và trên cùng một lưu ý:

121**.25*121**.25

hoạt động giống hệt nhau do làm tròn đẹp bởi Python, trong 17 byte.

>>> 121**.25*121**.25
11.0
>>> 21**.25*121**.25
7.099882579628641
>>> 11**.25*121**.25
6.0401053545372365
>>> 12**.25*121**.25
6.172934291446435
>>> 121*.25*121**.25
100.32789990825084
>>> 121*.25*121**.25
100.32789990825084
>>> 121**25*121**.25
3.8934141282176105e+52
>>> 121**.5*121**.25
36.4828726939094
>>> 121**.2*121**.25
8.654727864164496
>>> 121**.25121**.25
29.821567222277217
>>> 121**.25*21**.25
7.099882579628641
>>> 121**.25*11**.25
6.0401053545372365
>>> 121**.25*12**.25
6.172934291446435
>>> 121**.25*121*.25
100.32789990825084
>>> 121**.25*121*.25
100.32789990825084
>>> 121**.25*121**25
3.8934141282176105e+52
>>> 121**.25*121**.5
36.4828726939094
>>> 121**.25*121**.2
8.654727864164496

@Akiino Tôi không hiểu bản chỉnh sửa bạn đã thực hiện. Dòng bạn đã loại bỏ là một trong những khả năng bắt buộc và không khác bất kỳ dòng nào bên dưới nó. Bạn có thể giải thích tại sao bạn loại bỏ nó? Tôi quay lại, nhưng có thể thừa nhận để hoàn tác hành động với lý lẽ đầy đủ.
rp.beltran

Người cầu toàn bên trong của tôi không thể ngủ ngon khi biết rằng dòng (cái mà tôi đã loại bỏ) bị trùng lặp không có lý do. Có những dòng 56..., 26...và sau đó 56...một lần nữa, nhưng chỉ có một cách để có được 56, vì vậy nó chỉ nên được đưa vào một lần, phải không?
Akiiino

Ồ, tôi đã không thấy rằng nó ở đó hai lần. Xấu của tôi, bắt tốt.
rp.beltran

Tôi quay trở lại rollback của tôi.
rp.beltran

7

Phiên dịch SWI-Prolog

__A=__A.

Lưu ý: Bạn không thể loại bỏ cuối cùng. . Thông dịch viên Prolog sẽ luôn tìm kiếm giai đoạn cuối để chạy truy vấn của bạn, vì vậy nếu chúng tôi tuân thủ nghiêm ngặt các quy tắc của cuộc thi này và cho phép chúng tôi xóa giai đoạn nó sẽ không chạy, nó sẽ nhảy một dòng và chờ lệnh bổ sung cho đến khi một lệnh được kết thúc bởi một khoảng thời gian.

Các đầu __A=__A.ra truy vấn ban đầu true..

Các _A=__A.đầu ra truy vấn _A = '$VAR'('__A'). Sửa đổi tương tự (nghĩa là loại bỏ một _hoặc một trong hai A) sẽ dẫn đến kết quả đầu ra tương tự.

Cuối cùng, __A__A.kết quả truy vấn trong SWI-Prolog:

% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)

12
@Jakube Tôi không thấy việc có một giai đoạn cuối bắt buộc khác nhiều so với việc phải nhập phím enter để chạy đoạn trích trong ngôn ngữ khác. Nếu bạn loại bỏ linefeed, nó sẽ không chạy.
Gây tử vong vào

Nó tương đương với dấu chấm phẩy trong một số ngôn ngữ và được tính là một ký tự.
tomsmeding

5

Sed, 1 byte

d

Khi sedyêu cầu một luồng đầu vào, tôi sẽ đề xuất một quy ước rằng chính chương trình sẽ được cung cấp làm đầu vào.

$ sed -e 'd' <<<'d' | wc -c
0
$ sed -e '' <<<'d' | wc -c
2

Một chương trình thay thế là x, nhưng đó chỉ thay đổi từ 1đến 2byte đầu ra khi xóa.


2
Tôi thực sự đã quên thêm quy tắc không nhập vào câu hỏi, vì vậy bạn đã không vi phạm bất kỳ quy tắc nào tại thời điểm gửi. Tôi đã tạo cuộc thảo luận Có phải các ngôn ngữ như sed được miễn trừ khỏi quy tắc không có quy tắc nhập liệu không? trên Meta.
Dennis

5

K, 3 byte

2!2

Đầu ra 0trong REPL. Xóa 2 kết quả đầu ra 0 1, xóa kết quả cảm thán 22và xóa 2 kết quả cuối cùng trong một chuỗi khác nhau giữa các lần triển khai K nhưng luôn có ít nhất 2 ký tự (tính theo oK, (2!)theo @Dennis, Kona 2!).


@ Sp3000 Xóa các *bản in chỉ 2. Xóa 2 bản in (*!)(một chức năng chưa hoàn thành) trong oK; Tôi không biết về các thông dịch viên khác (ví dụ Kona, k2, v.v.), mặc dù tôi tin rằng Kona sẽ in *[!;]hoặc một cái gì đó tương tự. Tôi đã đi với việc loại bỏ ngôi sao vì nó có vẻ an toàn nhất.
kirbyfan64sos

Bạn không thể chọn, Nó phải hoạt động để xóa bất kỳ ký tự nào
edc65

@ edc65 Đã sửa lỗi với chi phí không phải là một byte.
kirbyfan64sos

1
@Dennis Cập nhật.
kirbyfan64sos

5

MATLAB, 9 7 byte

Nó dài hơn 2 byte so với câu trả lời MATLAB / Octave khác, nhưng dù sao tôi cũng thích nó, vì nó phức tạp hơn một chút.

'Toán tử của Matlab là chuyển vị liên hợp phức tạp. Sử dụng điều này trên một số ảo vô hướng, bạn nhận được i' = -i. Như số ảo có thể được viết đơn giản như 2ingười ta có thể làm:

2i--2i'
ans =
     0    

Xóa bất kỳ một trong các ký tự sẽ dẫn đến một trong những điều dưới đây:

ans =
   0.0000 - 1.0000i
   2.0000 - 2.0000i
   0.0000 + 4.0000i
   0.0000 + 4.0000i
   0.0000 + 1.0000i
   2.0000 + 2.0000i
   0.0000 + 4.0000i

4

GolfScript, 2 byte

Câu trả lời này không cạnh tranh, nhưng vì nó là đoạn mã truyền cảm hứng cho thử thách này, nên dù sao tôi cũng muốn chia sẻ nó.

:n

Theo mặc định, tất cả các chương trình GolfScript đều in toàn bộ ngăn xếp, theo sau là một nguồn cấp dữ liệu, bằng cách thực hiện putstrên toàn bộ ngăn xếp. Hàm putschính nó được triển khai như {print n print}trong trình thông dịch, trong đó printlà một tích hợp thực tế và nlà một biến giữ chuỗi "\n"theo mặc định.

Bây giờ, một chương trình GolfScript luôn đẩy đầu vào từ STDIN trên ngăn xếp. Trong trường hợp này, vì không có bất kỳ đầu vào nào, một chuỗi trống được đẩy. Việc gán biến sẽ :nlưu chuỗi trống đó vào n, loại bỏ nguồn cấp dữ liệu ẩn và làm cho đầu ra hoàn toàn trống.

Bằng cách loại bỏ n, bạn còn lại với phép gán biến không hoàn chỉnh :(bạn nghĩ đó là lỗi cú pháp, nhưng không phải), do đó, nguồn cấp dữ liệu ẩn được in như bình thường.

Bằng cách loại bỏ :, bạn còn lại n, sẽ đẩy một nguồn cấp dữ liệu trên ngăn xếp, vì vậy chương trình sẽ in hai nguồn cấp dữ liệu.


4

APL, J và có thể các biến thể khác, 3 byte

--1

Nó xuất ra 1trong APL. -1đầu ra ¯1--đầu ra như sau trong TryAPL :

┌┴┐
- -

3

J, 5 byte

|5j12

Độ lớn của số phức 5 + 12itrong REPL.

   |5j12 NB. original, magnitude of the complex number `5 + 12i`
13
   5j12  NB. the complex number `5 + 12i`
5j12
   |j12  NB. magnitude of the undefined function j12
| j12
   |512  NB. magnitude of 512
512
   |5j2  NB. magnitude of 5 + 2i
5.38516
   |5j1  NB. magnitude of 5 + 1i
5.09902

.

J, 9 byte

%0.333333

Dựa trên độ chính xác của dấu phẩy động, nghịch đảo và nghịch đảo ma trận.

   %0.333333 NB. original, reciprocal of 0.333333
3
   0.333333  NB. 0.333333
0.333333
   %.333333  NB. matrix inverse of 333333
3e_6
   %0333333  NB. reciprocal of 333333
3e_6
   %0.33333  NB. reciprocal of 0.33333
3.00003

Hãy thử trực tuyến tại đây.


3

Toán học, 3 byte

4!0

4!0  ->  0    the factorial of 4, times 0
4!   ->  24   the factorial of 4
40   ->  40
!0   ->  !0   the logical not of 0, but 0 is not a boolean value

3

APL Dyalog , 2 byte

⍴0 trả về một chuỗi rỗng (độ dài 0)

trả về (độ dài 1)

0trả về 0(độ dài 1)


2

Swift (và nhiều hơn nữa), 8 byte

93^99<84

đầu ra (4 ký tự):

true

Khi xóa ký tự thứ n, đầu ra là:

n -> out
----------
0 -> false
1 -> false
2 -> false
3 -> false
4 -> false
5 -> 10077
6 -> false
7 -> false

Có 78 giải pháp có thể như thế này trong định dạng a^b<c.

Tôi nghĩ mục tiêu của thử thách này phải là càng nhiều byte càng tốt, bởi vì càng nhiều byte thì càng có nhiều byte để loại bỏ và do đó khó khăn hơn.


Tôi đã nghĩ về điều đó, nhưng nó sẽ trở nên dễ dàng cho các ngôn ngữ dựa trên ngăn xếp. Nếu đây là một thử thách bowling mã, aditsu sẽ có điểm số infinte. Mã của anh ta có thể được lặp đi lặp lại nhiều lần; mỗi bản sao sẽ làm chính xác như nhau.
Dennis

@Dennis Ồ tôi hiểu rồi, vâng có ý nghĩa, nhưng tôi nghĩ rằng byte có thể không phải là một biện pháp tốt cho nhiệm vụ này
Kametrixom

Tôi đồng ý. Đó là lý do tại sao nó là một cuộc thi phổ biến. Hầu hết các câu trả lời nâng cao chiến thắng.
Dennis

2

MathGolf , 2 byte

♂(

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

Giải trình

♂   Push 10
 (  Decrement TOS by 1

Tại sao điều này làm việc?

Đầu ra thường xuyên là 9. Nếu (bị loại bỏ, đầu ra là 10. Nếu bị loại bỏ, chương trình sẽ bật 0 từ ngăn xếp để cung cấp cho (toán tử, đầu ra -1.


1

Clojure, 11 byte

(defn x[]1)

Lúc đầu, tôi nghĩ chỉ đăng một câu trả lời của một ký tự trong REPL như các ngôn ngữ khác, vd

user=> 1
1

Nhưng vấn đề là nếu bạn loại bỏ ký tự đó, REPL sẽ không làm gì khi nhấn phím. Vì vậy, thay vào đó, nó phải được bọc bằng một chức năng như được cho phép bởi các quy tắc của câu hỏi. Khi bạn gọi hàm này, nó sẽ trả về 1. Nếu bạn loại bỏ ký tự duy nhất trong hàm,

(defn x[])

hàm trả về nilin ra hai byte bổ sung.

user=> (defn x[]1)
#'user/x
user=> (x)
1
user=> (defn y[])
#'user/y
user=> (y)
nil

1
Để làm rõ: Cuộc thi yêu cầu một chức năng bên trong , 1trong trường hợp này (1 byte).
Dennis

1

05AB1E (di sản), 1 byte

Bất kỳ byte đơn nào trong 05AB1E (di sản) sẽ hoạt động, ngoại trừ [(vòng lặp vô hạn).

Xem ở đây tất cả các đầu ra có thể cho tất cả các chương trình 05AB1E byte đơn có thể.

Việc xóa byte đơn đó để một chương trình trống còn lại sẽ xuất nội dung của info.txt sang STDOUT theo mặc định.

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


05AB1E , 1 byte

?

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

Thật không may, một chương trình trống trong phiên bản mới của 05AB1E chỉ xuất ra một dòng mới 1 byte theo mặc định ( Dùng thử trực tuyến ), vì vậy hầu như không có ký tự 1 byte nào có thể vì chúng sẽ không xuất ra gì. Chương trình duy nhất có thể không tạo ra kết quả gì (vì vậy cũng không phải là dòng mới ẩn) ?theo như tôi biết.


0

Japt , 2 byte

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

Ađược khởi tạo trước thành 10, Étrừ 1 và kết quả là 1 byte : 9.

Xóa kết quả É trong chương trình A, tạo ra giá trị của A 10, do đó kết quả là 2 byte.

Tương tự, loại bỏ kết quả A chỉ Éđược hiểu là -1 và đầu ra là -1, do đó kết quả là 2 byte.


0

Runic Enchantments , 6 (có thể sửa đổi) byte

11-{{B\
/B~~@/
\00<
R"Error"@

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

Runic không có môi trường REPL và viết một chương trình đầy đủ để đáp ứng các ràng buộc là không khả thi (dẫn đến các chương trình không hợp lệ hoặc không có đầu ra). Vì vậy, phần mã 11-{{Bđang hoạt động như một hàm bên trong và chỉ phần này có thể được sửa đổi. Lệnh Bnày đủ gần với một con trỏ hàm và câu lệnh trả về rằng phân loại này phải được chấp nhận (vì nó nhảy IP đến một vị trí trong mã cũng như đẩy một vị trí trả về ngăn xếp có thể được truy cập bởi một tiếp theo Bhoặc bị loại bỏ) .

  • Đầu ra tiêu chuẩn: 0
  • Loại bỏ một trong các 1s:05
  • Loại bỏ -:11
  • Xóa một trong hai {:Error051
  • Loại bỏ B:120

Cuối cùng \ở cuối dòng đầu tiên cung cấp một ranh giới bên ngoài xung quanh chức năng bên trong trong trường hợp lệnh trả về bị loại bỏ để IP không đi vòng quanh khắp mọi nơi (và không in ra).

Lưu ý rằng đó Error051chỉ là một chuỗi tùy ý, tôi có thể đặt bất cứ thứ gì tôi muốn vào phần mã đó và "Lỗi" là một kết quả thú vị khi có mã làm tăng tọa độ trả về và IP dịch chuyển đến một vị trí tùy ý.

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.