Lebih banyak lebih sedikit dan lebih sedikit lebih banyak

72

Siapa saja dapat membuat output program lebih besar dengan menambahkan karakter, jadi mari kita lakukan sebaliknya.

Tulis program lengkap, fungsi batin atau cuplikan untuk lingkungan REPL dalam bahasa pilihan Anda yang memenuhi kriteria berikut:

  1. Panjang kode Anda harus minimal 1 karakter.

  2. Menjalankan kode asli menghasilkan x karakter output ke STDOUT (atau alternatif terdekat), di mana 0 ≤ x <+ ∞ .

  3. Menghapus karakter tunggal sembarang dari kode asli menghasilkan lagi dalam kode yang valid, yang menghasilkan setidaknya x + 1 karakter output ke STDOUT.

  4. Baik kode asli maupun modifikasi tidak dapat menghasilkan output kesalahan, baik untuk STDOUT, STDERR, syslog atau di tempat lain. Satu-satunya pengecualian untuk aturan ini adalah peringatan kompiler.

    Program Anda mungkin tidak memerlukan flag atau pengaturan apa pun untuk menekan output kesalahan.

    Program Anda mungkin tidak mengandung kesalahan fatal, bahkan jika mereka tidak menghasilkan output apa pun.

  5. Baik kode asli dan modifikasi harus deterministik dan selesai pada akhirnya (tidak ada loop tak terbatas).

  6. Baik kode asli maupun modifikasi mungkin tidak memerlukan input apa pun.

  7. Fungsi atau cuplikan tidak dapat mempertahankan status apa pun di antara eksekusi.

Menimbang bahwa tugas ini sepele adalah beberapa bahasa dan benar-benar mustahil dalam bahasa lain, ini adalah .

Saat memberikan suara, harap perhatikan "relatif singkat" kode, yaitu, jawaban yang lebih pendek harus dianggap lebih kreatif daripada jawaban yang lebih panjang dalam bahasa yang sama .

Dennis
sumber
2
Sementara solusi 1 byte mengesankan, akan lebih mengesankan untuk melihat siapa yang dapat menghasilkan rasio tertinggi x: x + nie panjang output normal dibandingkan dengan panjang rata-rata output ketika salah satu karakter dihapus. Menambah tantangan ekstra untuk pertanyaan ini menurut saya.
Trent
@ FizzBuzz Mudah: 111111111111111111^111111111111111111(jika Anda maksud rasio terendah).
jimmy23013
2
Ah, baru saja perhatikan 'tidak ada loop yang tak terbatas.' Saya sedang bekerja membuat program> <> yang akan membuat output lebih cepat jika satu karakter dihapus, sehingga setelah kinstruksi konstan , output masing-masing program secara ketat lebih besar daripada output yang asli sejak saat itu (karena yang lain program akan mengulang lebih cepat atau menghasilkan lebih banyak setiap loop). Itu terlihat sangat menarik. Mungkin saya akan melihat apakah saya bisa menyelesaikannya, dan membuat tantangan lain.
mbomb007
Metrik penilaian yang menarik untuk tantangan ini bisa berupa "karakter paling unik, hubungan terpendek". Kami kemudian akan mencoba untuk mendapatkan semua karakter dalam string literal.
lirtosiast
Apa yang dimaksud dengan fungsi batin?
dfeuer

Jawaban:

94

REPL dengan operasi XOR caret, 5 byte

11^11

11^11tentu saja 0. Satu-satunya kemungkinan lain adalah 1^11atau 11^1yang 10, atau 1111yang menghasilkan sendiri.

feersum
sumber
7
Dimainkan dengan baik, feersum. Permainan yang bagus.
Alex A.
13
Minus juga akan melakukan trik.
Martin Ender
11
Demikian pula,99|99
Sp3000
@ Challenger5 -10lebih panjang dari 0.
Martin Ender
@ MartinEnder Oh, begitu. Untuk beberapa alasan saya pikir itu harus menjadi angka yang lebih besar.
Buah Esolanging
55

TI-BASIC, 3 1

"

Ketika baris terakhir suatu program adalah ekspresi, kalkulator akan menampilkan ekspresi itu. Jika tidak, kalkulator akan ditampilkan Donesaat program selesai. Ekspresi di sini adalah string kosong, tetapi bisa juga berfungsi dengan angka satu digit.

2 byte:

isClockOn

Sama seperti di atas tetapi dengan token 2-byte.

3 byte:

ππ⁻¹

Mencetak 1karena multiplikasi tersirat. Dapat diperpanjang tanpa batas dengan menambahkan pasangan ⁻¹'s. Di bawah ini juga berfungsi.

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

Solusi yang lebih panjang:

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

Mungkin ada juga solusi multi-line tetapi saya tidak dapat menemukannya.

lirtosiast
sumber
Saya tidak familier dengan TI BASIC. Apakah Anda menghitung sqrt dan tanda kurung sebagai karakter tunggal?
Level River St
6
Ya, sqrt dan tanda kurung bersama-sama token tunggal, disimpan sebagai satu byte dalam memori kalkulator dan dimasukkan dengan satu penekanan tombol.
lirtosiast
8
akhirnya cara untuk menghentikan pesan Selesai yang menjengkelkan itu!
Faraz Masroor
1
Tidak ada Donetoken; kalkulator ditampilkan Doneketika selesai menjalankan program apa pun tanpa ekspresi di baris terakhir (termasuk program kosong).
lirtosiast
48

CJam, JavaScript, Python, dll, 18 byte

8.8888888888888888

Output dalam CJam adalah:

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

JavaScript dan Python bekerja dengan cara yang serupa. Ini tidak kompetitif dalam JavaScript dan Python, tetapi tidak mudah untuk menemukan yang lebih pendek di CJam .

jimmy23013
sumber
16
Pelanggaran titik apung yang bagus!
nderscore
31

Oktaf, 5 byte

10:10

(x: y) memberikan array angka antara x dan y dengan kelipatan 1, jadi antara 10 dan 10 satu-satunya elemen adalah 10:

> 10:10
ans = 10

Ketika argumen kedua kurang dari yang pertama, oktaf mencetak matriks kosong dan dimensinya:

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

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

Ketika sebuah karakter dihapus dari angka pertama, ada lebih banyak elemen dalam array:

> 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

Ketika titik dua dihapus, nomor itu kembali sendiri:

> 1010
ans = 1010
Craig Roy
sumber
1
juga berlaku di R
mnel
30

Microscript, 1 byte

h

Ini tidak menghasilkan ouput, karena hmenekan pencetakan implisit bahasa. Menghapus satu-satunya karakter menghasilkan program yang outputnya 0\n.

Saya akan mencoba memberikan jawaban yang lebih baik nanti.

EDIT PADA NOVEMBER 17:

Ini juga berfungsi di Microscript II, dengan pengecualian bahwa, bukannya menghasilkan 0\n, program kosong menghasilkan null.

SuperJedi224
sumber
22

Pyth, 3 byte

cGG

Gdiinisialisasi dengan huruf kecil dalam alfabet. cadalah fungsi split.

cGGmembagi alfabet dengan kemunculan alfabet, yang berakhir dengan ['', ''](8 byte).

Saat parameter kedua hilang, cpisahkan string dengan spasi, tab, atau baris baru. Karena tidak ada yang muncul G, output untuk cGadalah ['abcdefghijklmnopqrstuvwxyz'](30 byte).

Dan GGcukup mencetak dua kali alfabet pada dua baris yang terpisah: abcdefghijklmnopqrstuvwxyz\nabcdefghijklmnopqrstuvwxyz(53 byte).

Cobalah online: Demonstrasi

Jakube
sumber
16

Python REPL, 6 byte

Bukan yang terpendek, tapi inilah jawaban penyalahgunaan titik mengambang lainnya:

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

Tapi...

>>> 11e308
inf
Sp3000
sumber
14

JavaScript (dan banyak lagi), 5byte

44/44 atau

44/44 -> 1
44/4  -> 11
4444  -> 4444
4/44  -> 0.09090909090909091
C5H8NNaO4
sumber
12

CJam, 5

''''=

Cobalah online

''''=   compares two apostrophes and prints 1
'''=    prints '=
''''    prints ''
aditsu
sumber
11

Bahasa , 5 byte

00000

Panjang program adalah 5 yang sesuai dengan program brainf *** ,membaca akhir karakter input dan berakhir tanpa output.

Menghapus karakter apa saja yang dihasilkan dalam kode 0000yang memiliki panjang 4 sesuai dengan program brainf *** .mencetak satu karakter (codepoint 0) dan mengakhiri.

The Unary setara akan menjadi 0000000000000(13 nol) karena Anda harus tambahkan terkemuka 1dengan panjang biner dari kode sehingga 101menjadi 1101.

randomra
sumber
9

PHP, 6 byte

Saya telah menonton grup ini selama beberapa minggu dan kagum dengan teknik pemrograman Anda. Sekarang saya harus masuk, ada sesuatu yang bisa saya lakukan, maaf :-) Namun, ini mungkin posting terakhir saya di sini ...

<?php 

(perhatikan spasi setelah detik p)

Ini menghasilkan string kosong. Menghapus karakter apa pun akan menghasilkan teks tanpa karakter. Catatan itu dapat menghasilkan kesalahan HTML (konten tidak dirender oleh browser untuk misalnya. <?ph).

Saya juga mencoba dengan echotag. yaitu. misalnya.:

<?= __LINE__;;

Ini output 1. Jika =dihilangkan, <? __LINE__;;apakah hasilnya. Namun, menghapus salah satu karakter konstanta ajaib akan menghasilkan E_NOTICE : Pemberitahuan: Penggunaan LNE konstan yang tidak ditentukan - diasumsikan ' LNE ' di ...

Jika pemberitahuan tidak dianggap sebagai kesalahan (butir 4 aturan), ini juga berlaku :-)

Voitcus
sumber
Oh, itu pintar. Saya kira linefeed akan bekerja juga. Jika tugasnya adalah untuk menghasilkan HTML , ini tidak valid. Namun, PHP dapat dijalankan dari baris perintah, sama seperti bahasa pemrograman lainnya, di mana hasilnya hanya dicetak ke layar.
Dennis
@Dennis PHP mengeluarkan apa saja . Anda selalu dapat menggunakan CTRL-U di browser Anda untuk melihat hasilnya. HTML mungkin tidak valid, tetapi kenyataannya program tidak (tidak ada <HTML>tag dll.)
Voitcus
1
Maksud saya adalah bahwa tidak perlu melibatkan browser sama sekali. Eksekusi saja php test.php. Ngomong-ngomong, kode kedua tidak valid. Pertanyaannya tidak melarang kesalahan tetapi output kesalahan, kesalahan makna, peringatan, pemberitahuan, dll.
Dennis
2
#!dalam file skrip juga berfungsi.
jimmy23013
9

Python, 10 8 byte

256**.25

Bekerja dalam Python dan teman-teman. Terima kasih kepada Jakube untuk menunjukkan cara membuatnya 2 byte lebih kecil.

Dari 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

awalnya saya punya ini (10 byte):

14641**.25

Dari 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

dan pada catatan yang sama:

121**.25*121**.25

bekerja secara identik karena pembulatan bagus oleh Python, dalam 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
rp.beltran
sumber
@Akiino Saya tidak mengerti hasil edit yang Anda buat. Baris yang Anda hapus adalah salah satu kemungkinan yang diperlukan dan tidak berbeda dengan yang ada di bawahnya. Bisakah Anda menjelaskan mengapa Anda menghapusnya? Saya memutar kembali, tetapi saya bisa membatalkan tindakan dengan alasan yang memadai.
rp.beltran
Perfeksionis batiniah saya tidak bisa tidur nyenyak mengetahui bahwa garis (yang saya hapus) diduplikasi tanpa alasan. Ada garis 56..., 26...dan sekali 56...lagi, tetapi hanya ada satu cara untuk mendapatkan 56, jadi harus dimasukkan hanya sekali, bukan?
Akiiino
Oh, saya tidak melihat bahwa itu ada di sana dua kali. Tangkapan jelek dan bagusku.
rp.beltran
Saya memutar kembali rollback saya.
rp.beltran
7

Penerjemah SWI-Prolog

__A=__A.

Catatan: Anda tidak dapat menghapus final. . Penerjemah prolog akan selalu mencari periode terakhir untuk menjalankan kueri Anda, jadi jika kami berpegang teguh pada aturan kontes ini dan membiarkan diri kami untuk menghapus periode itu tidak akan berjalan, itu akan melompat garis dan menunggu perintah tambahan sampai satu diakhiri dengan titik.

__A=__A.Output kueri asli true..

_A=__A.Output kueri _A = '$VAR'('__A'). Modifikasi serupa (yaitu menghapus satu _atau satu dari dua A) akan menghasilkan output yang serupa.

Akhirnya, hasil kueri __A__A.di SWI-Prolog:

% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)
Fatalisasi
sumber
12
@ Jakube Saya tidak melihat bagaimana memiliki periode akhir wajib adalah jauh berbeda dari harus memasukkan tombol enter untuk menjalankan cuplikan dalam bahasa lain. Jika Anda menghapus linefeed itu tidak akan berjalan baik.
Fatalkan
Ini lebih setara dengan titik koma di beberapa bahasa, dan itu dihitung sebagai karakter.
tommeding
5

Sed, 1 byte

d

Karena sedmemerlukan aliran input, saya akan mengusulkan konvensi bahwa program itu sendiri harus diberikan sebagai input.

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

Program alternatif adalah x, tetapi itu hanya berubah dari byte 1ke 2output ketika dihapus.

Toby Speight
sumber
2
Saya benar-benar lupa menambahkan aturan no input pada pertanyaan, jadi Anda tidak melanggar aturan apa pun pada saat pengiriman. Saya telah membuat diskusi. Apakah bahasa seperti sed dibebaskan dari aturan "tidak ada input"? di Meta.
Dennis
5

K, 3 byte

2!2

Output 0dalam REPL. Menghapus 2 output pertama 0 1, menghapus hasil seru 22, dan menghapus 2 hasil terakhir dalam string yang bervariasi antara implementasi K tetapi selalu setidaknya 2 karakter (dalam oK, itu (2!); menurut @Dennis, output Kona 2!).

kirbyfan64sos
sumber
@ Sp3000 Menghapus *cetakan adil 2. Menghapus 2 cetakan (*!)(fungsi tidak lengkap) di oK; Saya tidak tahu tentang penerjemah lain (mis. Kona, k2, dll.), Meskipun saya percaya Kona akan mencetak *[!;]atau yang serupa. Saya pergi dengan melepas bintang karena sepertinya yang paling aman.
kirbyfan64sos
Anda tidak dapat memilih, Ini harus menghapus karakter apa pun
edc65
@ edc65 Diperbaiki dengan biaya tidak satu byte.
kirbyfan64sos
1
@Dennis Diperbarui.
kirbyfan64sos
5

MATLAB, 9 7 byte

Ini 2 byte lebih lama daripada jawaban MATLAB / Oktaf lainnya, tapi saya tetap menyukainya, karena sedikit lebih rumit.

Operator Matlab 'adalah transpose terkonjugasi kompleks. Menggunakan ini pada nomor imajiner skalar, Anda dapatkan i' = -i. Karena angka imajiner dapat ditulis hanya seperti yang 2idapat dilakukan:

2i--2i'
ans =
     0    

Menghapus salah satu karakter akan menghasilkan salah satu di bawah ini:

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
Stewie Griffin
sumber
4

GolfScript, 2 byte

Jawaban ini tidak bersaing, tetapi karena itu adalah bagian dari kode yang menginspirasi tantangan ini, saya tetap ingin membagikannya.

:n

Secara default, semua program GolfScript mencetak seluruh tumpukan, diikuti oleh umpan baris, dengan mengeksekusi putspada seluruh tumpukan. Fungsi putsitu sendiri diimplementasikan seperti {print n print}pada interpreter, di mana printmerupakan built-in aktual dan nmerupakan variabel yang menyimpan string "\n"secara default.

Sekarang, program GolfScript selalu mendorong input dari STDIN pada stack. Dalam hal ini, karena tidak ada input, string kosong didorong. Penugasan variabel :nmenyimpan string kosong di dalam n, menekan linefeed implisit dan membuat output benar-benar kosong.

Dengan menghilangkan n, Anda ditinggalkan dengan penugasan variabel tidak lengkap :(Anda akan berpikir itu adalah kesalahan sintaks, tetapi tidak), sehingga linefeed implisit dicetak seperti biasa.

Dengan menghilangkan :, Anda yang tersisa n, yang mendorong umpan baris pada tumpukan, sehingga program mencetak dua umpan garis.

Dennis
sumber
4

APL, J dan mungkin varian lainnya, 3 byte

--1

Ini output 1dalam APL. -1output ¯1, dan --output berikut ini di TryAPL :

┌┴┐
- -
jimmy23013
sumber
3

J, 5 byte

|5j12

Besarnya bilangan kompleks 5 + 12idalam 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

Berdasarkan presisi floating point, timbal balik dan matriks terbalik.

   %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

Cobalah online di sini.

randomra
sumber
3

Mathematica, 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
alephalpha
sumber
3

Dyalog APL , 2 byte

⍴0 mengembalikan string kosong (panjang 0)

pengembalian (panjang 1)

0pengembalian 0(panjang 1)

Adm
sumber
2

Swift (dan banyak lagi), 8 byte

93^99<84

output (4 karakter):

true

Saat menghapus karakter ke-n, outputnya adalah:

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

Ada 78 solusi yang mungkin seperti ini dalam format a^b<c.

Saya pikir tujuan dari tantangan ini adalah sebanyak mungkin byte, karena semakin banyak byte, semakin banyak kemungkinan byte untuk dihapus dan karenanya semakin sulit.

Kametrixom
sumber
Saya memikirkan hal itu, tetapi akan lebih mudah untuk bahasa berbasis stack. Jika ini adalah tantangan kode bowling, aditsu akan memiliki skor infinte. Kode-Nya dapat diulang berulang kali; setiap salinan akan melakukan hal yang persis sama.
Dennis
@ Dennis Oh saya mengerti, ya masuk akal, tapi saya pikir byte mungkin bukan ukuran yang sangat baik untuk tugas ini
Kametrixom
Saya setuju. Itu sebabnya ini adalah kontes popularitas. Sebagian besar jawaban yang dipvotasikan menang.
Dennis
2

MathGolf , 2 byte

♂(

Cobalah online!

Penjelasan

♂   Push 10
 (  Decrement TOS by 1

Mengapa ini bekerja?

Output reguler adalah 9. Jika (dihapus, output adalah 10. Jika dihapus, program secara implisit mengeluarkan 0 dari tumpukan untuk memberi makan (operator, yang menghasilkan -1.

maks
sumber
1

Clojure, 11 byte

(defn x[]1)

Pada awalnya saya berpikir untuk mengirim satu jawaban karakter di REPL seperti bahasa lain, misalnya

user=> 1
1

Tetapi masalahnya adalah jika Anda menghapus karakter itu, REPL tidak melakukan apa-apa saat tombol ditekan enter. Jadi alih-alih harus dibungkus dengan fungsi sebagaimana diizinkan oleh aturan pertanyaan. Ketika Anda memanggil fungsi ini, ia mengembalikan 1. Jika Anda menghapus satu-satunya karakter dalam fungsi,

(defn x[])

fungsi mengembalikan nilyang mencetak dua byte tambahan.

user=> (defn x[]1)
#'user/x
user=> (x)
1
user=> (defn y[])
#'user/y
user=> (y)
nil
Zach Thacker
sumber
1
Untuk memperjelas: Kontes membutuhkan fungsi dalam , yang akan 1dalam hal ini (1 byte).
Dennis
1

05AB1E (lawas), 1 byte

Setiap byte tunggal di 05AB1E (legacy) akan berfungsi, kecuali untuk [(infinite loop).

Lihat di sini semua kemungkinan keluaran untuk semua program 05AB1E byte tunggal yang mungkin.

Menghapus byte tunggal sehingga program kosong tetap akan menampilkan konten info.txt ke STDOUT sebagai gantinya.

Cobalah online.


05AB1E , 1 byte

?

Cobalah online.

Sayangnya program kosong di versi baru 05AB1E hanya menghasilkan 1-byte baris baru secara default ( Coba online ), sehingga hampir tidak ada karakter 1-byte yang dimungkinkan karena mereka tidak akan menghasilkan apa-apa. Satu-satunya program yang mungkin tidak menghasilkan apa-apa (jadi bukan baris baru tersirat) ?sejauh yang saya tahu.

Kevin Cruijssen
sumber
0

Japt , 2 byte

Cobalah online!

Aadalah pra-diinisialisasi ke 10, Émengurangi 1, dan hasilnya adalah 1 byte: 9.

Menghapus É menghasilkan program A, yang menghasilkan nilai A 10, sehingga hasilnya adalah 2 byte.

Demikian pula, menghapus hasil A hanya Édiartikan sebagai -1 dan output sebagai -1, sehingga hasilnya adalah 2 byte.

Kamil Drakari
sumber
0

Pesona Runic , 6 byte (dapat dimodifikasi)

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

Cobalah online!

Runic tidak memiliki lingkungan REPL dan menulis program lengkap untuk memenuhi kendala tidak mudah (mengarah ke program yang tidak valid atau tidak ada output). Jadi bagian dari kode 11-{{Bbertindak sebagai fungsi bagian dalam dan hanya bagian ini yang dapat dimodifikasi. The Binstruksi cukup dekat dengan pointer fungsi dan pernyataan kembali bahwa klasifikasi ini harus dapat diterima (karena melompat IP ke posisi dalam kode serta mendorong lokasi kembali ke stack yang dapat diakses oleh berikutnya Batau dibuang) .

  • Output standar: 0
  • Menghapus salah satu dari 1s:05
  • Menghapus -:11
  • Menghapus salah satu {:Error051
  • Menghapus B:120

Final \di akhir baris pertama memberikan batas eksternal di sekitar fungsi dalam jika instruksi pengembalian dihapus sehingga IP tidak pergi berkelok-kelok di mana-mana mau tak mau (dan cetak tidak ada output).

Perhatikan bahwa Error051ini hanyalah string arbitrer, saya bisa memasukkan apa pun yang saya inginkan ke bagian kode itu dan "Kesalahan" adalah hasil yang lucu karena memiliki kode yang mencari koordinat pengembalian dan IP teleport ke lokasi arbitrer.

Draco18s
sumber