Concurso (!): En el idioma que elija, escriba un programa que atraviese el árbol de directorios de un directorio determinado y genere un árbol (es decir, una matriz de matrices) correspondiente a él. Suponga que el directorio es una variable predefinida D. El recuento de caracteres más pequeño gana.
Reglas:
- Debes usar la recursividad
- Ver reglas
Nota: Suponga que no hay límites de profundidad de recursión. En otras palabras, su código solo necesita trabajar para árboles de directorio suficientemente pequeños, y en principio para los más grandes.
Por ejemplo:
El árbol de directorios es
dir1
├── dir11
│ ├── file111
│ └── file112
├── dir12
│ ├── file121
│ ├── file122
│ └── file123
├── file11
├── file12
└── file13
El árbol de salida es
[[[],[]],[[],[],[]],[],[],[]]
Primer código de golf aquí, así que déjame saber si estoy haciendo algo mal.
Que te diviertas :)
code-golf
file-system
Andrew Odesky
fuente
fuente
Respuestas:
Mathematica
1202120Recurrencia explícita (gracias alephalpha por guardar un personaje):
Solución sobrecomplicada anterior:
fuente
f=f/@__~FileNames~#&
Ruby, 38 caracteres
Si no le importa un espacio en blanco adicional en la salida:
Ejemplo de uso:
Salida:
Si no puedo tener el espacio en blanco, algo así para la segunda línea:
fuente
Python 2.7, 111 caracteres
Toma la ruta de destino desde stdin.
fuente
Powershell - 182 Char
Bastante simple. Podría reducirse en 10 caracteres si las comas no fueran necesarias. Toma la entrada de $ D (como se indicó en la pregunta), devuelve la salida en STD-Out como fue el ejemplo en la pregunta.
Realmente deseando alias podrían usar opciones! ¡Estoy siendo asesinado por 'write-host -NoNewline's!
fuente
C # 200 caracteres
Salida de una cadena, no una matriz real. Toma un camino como primer argumento.
Sin golf:
fuente
C ++, 318 bytes
Aquí hay una versión ungolfed:
Tenga en cuenta que, dado que, según las instrucciones, se supone que D es una variable predefinida, el código no se genera sin proporcionar de alguna manera D. Aquí hay una forma de generar:
fuente
Script por lotes:
146, 157, 152,127 bytesCorre con:
fuente