Come indicato più volte altrove (ad esempio 1, 2, ...) lo scripting in haskell può essere piuttosto potente.
Un modo rapido può anche essere il ghc expression evaluation mode. questo è quello che in realtà mi ritrovo ad usare sempre di più (mi piace molto questa caratteristica in ruby).
Un piccolo compito esempio:
"Ottieni tutte le cartelle che contenevano diff git tra la testa e una revisione specifica"Modalità di valutazione dell'espressione in haskell per lo scripting
git diff --stat 9e2b68 | ghc -e \
"getContents >>= return.(Data.List.nub).map(fst.break('/'==).head.words).lines"
Questo sembra un po 'goffo, probabilmente perché non mi conosco i dettagli di usare ghc -e
.
Dato che tutta la parte interessante è solo la nub.map(fst.break('/'==).head.words).lines
l'espressione attuale sembra un po 'prolisso.
- Come si comunica ai moduli i moduli da utilizzare, quindi non è necessario qualificarli utilizzando il nome completo?
- Posso fare ghc prelevare una specie di file di configurazione che contiene moduli che uso frequentemente?
Mi piacerebbe molto vedere alcuni esempi di altri casi che mi aiuteranno a migliorare il modo in cui utilizzo haskell per questo tipo di script!
Sidenote: I wizard della commandline-foo probabilmente rideranno di questo, ma mi sento molto più a mio agio nell'usare haskell e quindi bash scripting, quindi questo è quello che voglio usare.
Per String → Funzioni per le stringhe trovo che 'interact' sia un po 'meno goffo:' ghc -e "interagisce $ func func>" '. Questo spesso finisce con il fatto che 'ghc -e 'interagisce con $ Unlines. Map ( func func>). Lines" '. –
Nefrubyr
Essendo un fan sia di Git che di Haskell, che non è un gran "mago del comando", un post sul blog in cui si elencano un po 'di script Haskell relativi a git mi interesserebbe sicuramente! – MatrixFrog
@ MatrixFrog Non limitato a git ma forse ancora interessante per te: [Scripting con modalità di valutazione dei GHC] (http://blog.coldflake.com/post/12412650749/scripting-with-ghcs-valutazione-modifica) – oliver