Tulis sebuah program yang menghubungkan ke situs ini, unduh jawaban di mana ia diposting, ekstrak kode sumbernya sendiri dan cetaklah. Keluaran harus identik dengan kode sumber. Kode terpendek (dalam byte) menang.
Aturan:
- Tidak ada penyingkat URL yang diizinkan.
- Jawabannya harus memiliki format reguler - tajuk dengan nama dan ukuran bahasa, deskripsi opsional, blok kode, deskripsi opsional, dan penjelasan. Pembatas tidak alami diizinkan.
- Output harus berasal dari blok kode aktual yang diposting di situs.
- Fungsionalitas tidak boleh bergantung pada posisi dalam daftar jawaban; itu harus bekerja bahkan jika ada beberapa halaman dan jawabannya tidak pada yang pertama.
- Baru: catatan khusus untuk jawaban yang seharusnya dijalankan di browser: tidak apa-apa untuk menjalankannya di domain codegolf (untuk mematuhi kebijakan asal-sama) tetapi domain dan jalur harus dimasukkan dalam solusi untuk buat itu adil.
code-golf
quine
internet
self-referential
aditsu
sumber
sumber
Jawaban:
Bash + coreutils + browser Lynx, 61 byte
Terima kasih kepada @FDinoff untuk tipsnya:
sumber
codegolf.stackexchange.com/posts/28164/body
Dan itu mengabaikan komentar. Saya juga berpikir itu dalam aturan yang dapat Anda gunakan ...Ruby,
15518619514813811097 karakterSaya harus membuatnya menjadi satu baris, karena jika tidak maka akan menghasilkan baris baru sebagai
\n
ganti baris baru.+31 karakter karena saya tidak melihat beberapa karakter lolos.+9 karakter untuk menghilangkan backslash yang mengganggu.Penjelasan
Mari kita mempercantik ini sedikit dulu. Namun, saya harus menggunakan notasi yang agak ... menarik dalam kode ini. Saya tidak dapat menggunakan titik koma sama sekali di pos ini, karena alasan yang dijelaskan kemudian, jadi saya akan menggunakan
{SEMI}
titik koma sebagai gantinya.Baiklah, sekarang mari kita berjalan melalui ini. Dua baris pertama cukup jelas - mereka mengambil teks HTML dari jawaban ini.
Sekarang, baris terakhir adalah yang menarik di sini. Anda melihat bahwa titik koma yang tampaknya tidak berguna di akhir kode? Ini mutlak diperlukan, dan inilah sebabnya.
Pertama,
resp.match
ekstrak kode yang akan dicetak. Regexp menggunakan untuk ini adalah trik:/req.+{SEMI}/
. Itu mengambil awal kodeREQuire'net/http'
,, dengan mencarireq
(re
akan ambil sayaREputation
). Kemudian, ia menemukan akhir kode dengan mencari titik koma! Karena+
serakah secara default, ia akan terus berjalan sampai menemukan titik koma yang menandakan akhir kode. Lihat mengapa saya tidak bisa menggunakan titik koma lagi?Setelah itu, saya tidak perlu menghapus apa pun berkat perbaikan Ventero yang tidak digunakanTidak perlu lagi karena URL baru ini. Setelah itu, kode asli telah diambil! (Catatan: Saya juga tidak bisa menggunakan ampersand, karena itu mendapatkan HTML-encoded yang menyebabkan titik koma dibuat.)\
sama sekali. Yang harus saya lakukan adalah memperbaiki{AMPERSAND}
perubahan menjadi{AMPERSAND}amp{SEMI}
, yang dapat dicapai hanya dengan menghapusamp{SEMI}
bagian itu.sumber
puts
; itu bisa diperbaiki denganprint
tetapi meh. Hanya berpura-pura ada baris baru di kode, meskipun SE tidak akan bisa menunjukkannya.http://codegolf.stackexchange.com/a/28159
akan memberikan hasil yang sama seperti milik Anda dan akan menghemat beberapa karakter.PowerShell -
6962sumber
irm
adalah alias untukInvoke-RestMethod
dan diperkenalkan dengan inti PowerShell v3. computerperformance.co.uk/powershell/powershell3-alias.htmJavaScript -
1231221019592918786114Berjalan di konsol browser web Anda di halaman ini. Diuji pada Chrome
dan Firefoxterbaru .edit: +28 byte untuk menambahkan domain lengkap.
Firefox tidak lagi menyukai trik Regex URL saya dengan pembaruan ini :(
Inilah solusi 86 byte yang melanggar aturan:
sumber
codegolf.stackexchange.com/
ke url.Ruby + wget +
gunzip,159868271Menggunakan tip @FDinoff untuk digunakan
http://codegolf.stackexchange.com/posts/28173/body
.Diuji. Terima kasih kepada @ace dan @Bob untuk optimasi baris perintah.
sumber
wget
, seperti diwget -qO- url
. Selain itu, dalam bash Anda tidak perlu tanda kutip ganda untuk url, jadi ini juga dapat bekerja untuk Anda.http://
.CJam - 53
Saya membuat wiki komunitas ini karena saya menjawab pertanyaan saya sendiri dan tidak benar-benar ingin bersaing: p
Kredit ke FDinoff untuk pilihan URL.
sumber
);
tidak terlihat terlalu tersenyum kepada saya ...Rebmu, 91 karakter
Karena Catch-22 saya harus memposting untuk mendapatkan URL jawaban ini. :-/ OK saya mengerti.Rebmu adalah dialek Rebol, dan kamu bisa membaca semuanya . Rebol yang setara di sini adalah:
PARSE Rebol adalah semacam jawaban yang sangat melek huruf untuk RegEx. Ini memulai posisi pengurai input (yang dapat berupa seri apa saja, termasuk blok struktural ... data biner ... atau tipe string) . Aturan adalah bahasa untuk bagaimana posisi parse bergerak.
Tag dan URL benar-benar hanya string di bawah kap di bahasa. Tapi mereka "beraroma", dan karena Rebol diketik secara dinamis, Anda dapat memeriksa jenis itu. BACA misalnya tahu bahwa jika Anda memberinya string dengan rasa URL, maka itu harus dikirim ke penangan skema untuk melakukan pembacaan. (Dalam hal ini, yang terdaftar untuk HTTP). Anda mendapatkan kembali UTF-8 byte secara default, jadi kami menggunakan to-string untuk memecahkan kode itu dan mendapatkan serangkaian codepoint dalam string Unicode normal.
Dalam kasus dialek parse, menemukan jenis tag hanya cocok seolah-olah itu adalah string yang tampak seperti tag. THRU adalah instruksi yang berarti "lompati sampai aturan berikutnya cocok, dan kemudian tempatkan posisi pertandingan di akhir dari apa yang baru saja Anda cocokkan." (TO adalah analog yang cocok, tetapi meninggalkan posisi parse sebelum elemen).
Jadi kami zip melewati
<a name="28154">
. Kemudian kami melewati kejadian berikutnya<code>
, dengan posisi parse kami sekarang terletak tepat setelah>
. Perintah COPY PARSE kemudian memungkinkan kita menyalin data ke aturan lain, dalam hal ini aturannya adalah[TO </code>]
... jadi kita masuk ke variabel C semuanya sampai tepat sebelum itu<
.Keren ya :-)
Secara teknis saya bisa mencukur lebih banyak, misalnya dengan mencari
TO "</"
dan yang menyimpan tiga karakter - tidak perlu mencocokkan seluruh</code>
tag akhir ketika hanya</
akan dilakukan. Argumen serupa bisa saya buat untuk tag awal. Tetapi Rebmu adalah tentang golf melek huruf ... bahkan jika Anda mungkin berpikir itu terlihat aneh pada awalnya!UPDATE :
/body
triknya keluar dari tas, tapi saya juga akan membiarkannya apa adanya ... karena saya pikir ini lebih mendidik dengan cara ini.sumber
Java sekarang 634, 852, adalah 1004
Kode telah diperbarui; terima kasih atas sarannya. Golfed: sekarang menggantikan & gt dengan>
Mengirimkan untuk pengujian, saya akan mengedit dan mencoba golf sebentar lagi. Diperlukan untuk mengubah x> 1 ke x> 2 karena string tes juga dalam kode saya. Catatan: Code golf menggantikan> simbol to & gt.
sumber
//bacchus
?*
impor untuk menyimpan banyak kode.throws Exception
daripada mencoba menangani apa pun. Juga, saya pikir menggunakan Scanner daripada BufferedReader akan lebih mudah, terutama karena Anda dapat mengatur pembatas//bacchus
, yang akan membuat segalanya lebih mudah ...Python,
175167 byteIni menggunakan dua perpustakaan eksternal; Saya tidak membaca bahwa itu tidak sah.
Kode yang lebih panjang, tetapi terlihat lebih bagus:
sumber
questions
dalam url dapat diganti denganq
:http://codegolf.stackexchange.com/q/28154
bs4, requests
(baris 1) dapat dihapus untuk mengurangi 1 byte.JavaScript, 228
Berjalan di halaman ini.
sumber
if(this.readyState == this.DONE)
di dalam fungsinya.Haskell,
563613 byteDiuji. Memiliki dukungan halaman melalui fitur "posting tertua". Menggunakan struktur garis quine untuk menemukan apa yang akan dicetak. Ini
import Control.Monad
hanya karena>>=
menghasilkan>
dalam HTML.sumber
Javascript + jQuery,
87, 67Saya tidak yakin apakah saya diizinkan menggunakan jQuery, tetapi:
Javascript + jQuery, jika dieksekusi di halaman ini:
27, 25Untuk bersenang-senang, jika akan dieksekusi di sini:
$('[id$=28268] pre').html()
sumber
$('body').load('//codegolf.stackexchange.com/posts/28268/body pre')
w3m 45 karakter
sumber
Dart, 164
Saya pikir saya akan mencoba ini di Dart, cukup menyenangkan untuk menggunakan imo.
Ini dapat dijalankan di konsol di DartEditor, tetapi membutuhkan paket http yang ditambahkan di pubspec.yaml
Versi tidak disatukan:
sumber
R 114 karakter
Tidak ada keajaiban nyata di sini: dibutuhkan nilai bidang antara tag html
<code></code>
. Menggunakan perpustakaanXML
(seperti yang terlihat jelas dalam kode). Keluarkan hasilnya sebagai stdout.sumber
Jawa,
300294Versi jawaban bacchusbeale yang ditingkatkan yang:
Scanner
untuk menghindari perulangan inputDiperbarui:
<code>[...]</code>
sebagai pembatas untuk mencari (sebenarnya menggunakan ekspresi reguler "./?[c[ode\W", sehingga untuk menghindari keharusan mendekode<
dan>
- "\ W" diperlukan daripada yang lebih pendek "." untuk menghindarinya mencocokkan bagian dari URL dengan postingan, sayangnya, yang biayanya 2 karakter, dan tanda kurung siku sekitar c mencegah regex cocok dengan dirinya sendiri).sumber
w3m 55 byte
Berdasarkan @DigitalTrauma
sumber
Ruby,
237215146132sumber
Memproses, 90
Sunting: Akhirnya mendapatkannya!
sumber
bash + awk, 71 byte
sumber
http://
.Javascript, 138
Ini berfungsi dengan asumsi bahwa halaman memuat di bawah 99 ms. Itu juga harus dijalankan melalui konsol yang dibuka pada halaman codegolf.SE, karena kebijakan asal yang sama.
sumber
http://codegolf.stackexchange.com/a/28160
daripadahttp://codegolf.stackexchange.com/a/28160/12551
Perl 5.10,
155127122117 byteMenggunakan
XML::LibXML
.sumber
Shell dan xmllint, 82 byte
sumber
Python, 164
Bekerja dengan mengekstraksi teks di antara tag kode. Itu cukup panjang tetapi akan selalu berfungsi dengan benar kecuali halaman html diedit secara langsung atau blok kode baru ditambahkan sebelum yang di bawah ini (memiliki blok kode setelah seharusnya tidak berpengaruh pada output program).
sumber