Desarrollo del comando wc de Unix en Haskell
wc (en referencia a los términos ingleses “word count”) es un comando utilizado en el sistema operativo Unix que se utiliza para saber el número de palabras, líneas y caracteres de un fichero. Por ejemplo, si tenemos un fichero ciudades.txt cuyo contenido es
1 2 3 |
Sevilla, España Paris, Francia Munich, Alemania |
podemos contar con wc sus líneas, palabras y caracteres como sigue
1 2 3 4 5 6 |
> wc -l ciudades.txt 3 ciudades.txt > wc -w ciudades.txt 6 ciudades.txt > wc -m ciudades.txt 48 ciudades.txt |
En Haskell se pueden desarrollar programas simples con análogo comportamiento. Por ejemplo se puede contar las líneas del fichero como sigue
1 2 |
> runghc CuentaLineas.hs <ciudades.txt 3 |
El contenido del programa CuentaLineas.hs es simplemente
1 2 |
main = interact cuentaLineas where cuentaLineas entrada = show (length (lines entrada)) ++ "\n" |