Concours (!): Dans la langue de votre choix, écrivez un programme qui traversera l'arborescence d'un répertoire donné et produira une arborescence (c'est-à-dire un tableau de tableaux) qui lui correspond. Supposons que le répertoire soit une variable prédéfinie D. Le plus petit nombre de caractères gagne.
Règles:
- Vous devez utiliser la récursivité
- Voir les règles
Remarque: Supposons qu'il n'y a pas de limites de profondeur de récursivité. En d'autres termes, votre code doit simplement fonctionner pour des arborescences de répertoires suffisamment petites, et en principe pour les plus grandes.
Par exemple:
L'arborescence des répertoires est
dir1
├── dir11
│ ├── file111
│ └── file112
├── dir12
│ ├── file121
│ ├── file122
│ └── file123
├── file11
├── file12
└── file13
L'arbre de sortie est
[[[],[]],[[],[],[]],[],[],[]]
Commencez par jouer au golf ici afin que je sache si je fais quelque chose de mal.
S'amuser :)
code-golf
file-system
Andrew Odesky
la source
la source
Réponses:
Mathematica
1202120Récursivité explicite (merci alephalpha d'avoir enregistré un caractère):
Solution précédente trop compliquée:
la source
f=f/@__~FileNames~#&
Rubis, 38 caractères
Si cela ne vous dérange pas certains espaces supplémentaires dans la sortie:
Exemple d'utilisation:
Production:
Si je ne peux pas avoir d'espace, quelque chose comme ça pour la deuxième ligne:
la source
Python 2.7, 111 caractères
Prend le chemin cible depuis stdin.
la source
Powershell - 182 car.
Assez simple. Peut être réduit de 10 caractères si les virgules n'étaient pas nécessaires. Prend l'entrée de $ D (comme indiqué dans la question), retourne la sortie sur STD-Out comme l'exemple de la question est allé.
Souhaitant vraiment que les alias puissent utiliser des options! Je suis tué par le 'write-host -NoNewline's!
la source
Caractères C # 200
Sortie d'une chaîne, pas d'un tableau réel. Prend un chemin comme premier argument.
Non golfé:
la source
C ++, 318 octets
Voici une version légèrement non golfée:
Veuillez noter que puisque - selon les instructions - D est supposé être une variable prédéfinie, le code ne se construit pas sans fournir en quelque sorte D. Voici une façon de construire:
la source
Script batch -
146, 157, 152127 octetsCourir avec:
la source