Kontes (!): Dalam bahasa pilihan Anda, tulis sebuah program yang akan melintasi pohon direktori dari direktori yang diberikan dan menghasilkan pohon (yaitu, array array) yang sesuai dengannya. Asumsikan direktori adalah variabel yang telah ditentukan D. Hitungan karakter terkecil menang.
Aturan:
- Anda harus menggunakan rekursi
- Lihat Aturan
Catatan: Asumsikan bahwa tidak ada batas kedalaman rekursi. Dengan kata lain, kode Anda hanya perlu bekerja untuk pohon direktori yang cukup kecil, dan pada prinsipnya untuk yang lebih besar.
Misalnya:
Pohon direktori adalah
dir1
├── dir11
│ ├── file111
│ └── file112
├── dir12
│ ├── file121
│ ├── file122
│ └── file123
├── file11
├── file12
└── file13
Pohon hasil adalah
[[[],[]],[[],[],[]],[],[],[]]
Golf kode pertama di sini jadi saya tahu jika saya melakukan sesuatu yang salah.
Selamat bersenang-senang :)
code-golf
file-system
Andrew Odesky
sumber
sumber
Jawaban:
Mathematica
1202120Rekursi eksplisit (terima kasih alephalpha karena telah menyelamatkan satu char):
Solusi rumit berlebih sebelumnya:
sumber
f=f/@__~FileNames~#&
Ruby, 38 karakter
Jika Anda tidak keberatan dengan spasi putih tambahan di output:
Contoh penggunaan:
Keluaran:
Jika saya tidak dapat memiliki spasi putih, sesuatu seperti ini untuk baris kedua:
sumber
Python 2.7, 111 karakter
Mengambil jalur target dari stdin.
sumber
Powershell - 182 Char
Cukup sederhana. Dapat dikurangi 10 karakter jika koma tidak diperlukan. Mengambil input dari $ D (sebagaimana dinyatakan dalam pertanyaan), mengembalikan output pada STD-Out seperti contoh dalam pertanyaan.
Benar-benar berharap alias bisa menggunakan opsi! Saya terbunuh oleh 'host-host -NoNewline!
sumber
C # 200 karakter
Mengeluarkan string, bukan array aktual. Mengambil jalur sebagai argumen pertama.
Tidak Disatukan:
sumber
C ++, 318 byte
Berikut ini adalah versi yang sedikit tidak diubah:
Harap perhatikan bahwa karena - sesuai instruksi - D diasumsikan sebagai variabel yang sudah ditentukan sebelumnya, kode tidak akan dibangun tanpa menyediakan D.
sumber
Script batch -
146, 157, 152127 byteJalankan dengan:
sumber