Saya sering lupa apa yang ingin saya katakan ketika guru memanggil saya untuk berbicara. Bisakah Anda menjadikan saya alat untuk menyelesaikan ini?
Persyaratan:
- Program harus mengulang sebagai berikut:
- Pertama, ambil input
- Jika input kosong, cetak pertanyaan terakhir yang disimpan.
- Jika tidak, simpan input sebagai pertanyaan.
Catatan:
- Masukan tidak akan pernah kosong jika tidak ada pertanyaan yang disimpan.
Klarifikasi: Program tidak perlu menyimpan banyak pertanyaan. Saya awalnya ingin menyimpan lebih dari satu, tetapi saya mengubahnya setelah banyak orang salah mengerti pertanyaan itu.
Ingat, ini adalah kode-golf , jadi kode dengan jumlah byte terkecil menang.
Jawaban:
Perl,
131714 +1 = 15 byte+1 untuk
-n
bendera (disimpan 4 byte berkat @Dada)Selama input tidak sama dengan carriage return, ia menyimpan input
$;
. Jika sama dengan carriage return, ia mencetak apa yang sudah ada$;
.Ini mengasumsikan bahwa semua input dapat dicirikan sebagai pertanyaan, bahkan jika secara tata bahasa, mereka tidak seperti itu.
sumber
ne
bukaneq
(sekarang ini tidak berfungsi)././
alih - alih$/ne$_
;-)05AB1E,
121110 byteTerima kasih @daHugLenny dan @Adnan untuk 1 byte!
Terima kasih @Emigna untuk 1 byte!
sumber
®
dan©
denganX
danU
, Anda tidak perlu garis miring terbalik.Haskell, 49 byte
Cara kerjanya: mulai dengan
g ""
. Parameters
fungsig
adalah pertanyaan di toko.g
membaca baris berikutnya dari stdin dan meneruskannya (dan juga s) ke#
. Jika saluran kosong,#
cetak toko dan panggilg
lagi. Jika garis tidak kosong,g
disebut dengan garis sebagai toko baru.sumber
JavaScript,
363431 byteInfinite loop terus meminta input dan menyimpannya di
b
. Jika inputnya tidak kosong, kemudian disimpana
, jika tidak, nilaia
dicetak.Disimpan 2 byte berkat produk @ETH
sumber
1
, dan yang lain dengan pindahb?a=b:alert(a)
ke bagian terakhir dalam for-loop (yaitufor(a=0;;b?a=b:alert(a))b=prompt()
)a=0
tidak perlu juga. Karena input hanya dapat kosong jika ada pertanyaan yang disimpan,a
tidak akan dirujuk jika belum ditetapkan.Mathematica, 44 byte
Program lengkap. Karakter Unicode adalah U + 221E INFINITY untuk
\[Infinity]
.sumber
Python 3, 31 byte
Cobalah!
-1 byte terima kasih kepada Flp.Tkc
sumber
reticular, 12 byte
Cobalah online!
Penjelasan
sumber
Pyke, 6 byte
Coba di sini!
sumber
Python3 - 49 byte
sumber
NameError: name 'b' is not defined
b=input()
. Terima kasih!Python 3, 34 byte
sumber
Python 3, 60 byte
sumber
CMD, 37 byte
Sayangnya
set
tidak mengambil input kosong :(dalam nama file
c.cmd
ataudalam file apa pun. Bekerja (Gunakan
-
sebagai kosong):sumber
set/p
tidak akan pernah membuat variabel kosong, jadi paling tidak Anda perluset a=
di baris pertama; juga saya pikir maksud Andaset b=%a%
.APLX, 19 byte
Penjelasan:
sumber
C,
7363 byteHanya menggunakan 1 buffer dan satu karakter untuk menangani logika. Jika pengguna tidak memasukkan apa pun, hanya karakter pertama dalam buffer yang ditimpa
'\0'
, dalam hal ini akan dipulihkanx
dan dicetak, jika tidak, salin huruf pertama ke dalamx
untuk digunakan nanti.Kode sebelumnya:
sumber
Java 7,
189187178 byte ..-9 byte dengan menggunakan
new java.util.Scanner
secara langsung, terima kasih kepada @cliffroot .Mungkin pertama kali saya menggunakan
do-while
tantangan codegolf ..Ketika fungsi diizinkan alih-alih program, 135 byte (masih banyak kali lebih banyak daripada sebagian besar jawaban lainnya ..)
sumber
void c(){for(String s="",x;(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
for
atau diwhile
suatu tempat? .. Apa itu(x=new java.util.Scanner(System.in).nextLine())!=null;)
?void c(){for(String s="",x;for(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
dan itu sebenarnya 1 byte lebih lama dari versi dengando-while
-void c(){String s="",x;do{x=new java.util.Scanner(System.in).nextLine();if(x.isEmpty())System.out.println(s);else s=x;}while(1>0);}
sed, 10 byte
Penjelasan:
Senang melihat bahasa eksoteris (yaitu "bukan esoterik") yang mengikat dengan beberapa bahasa golf!
sumber