Как отмечено несколько раз в другом месте (например, 1, 2,...) скрипты в haskell могут быть достаточно мощными.
Быстрый способ также может быть режим оценки выражения ghc. это то, что я на самом деле нахожу себя использующим все больше и больше (мне очень нравится эта функция в рубине).
Небольшая примерная задача:
"Узнайте все папки, содержащие git diff между HEAD и конкретной версией"
git diff --stat 9e2b68 | ghc -e \
"getContents >>= return.(Data.List.nub).map(fst.break('/'==).head.words).lines"
Это выглядит немного неуклюжим, возможно, потому, что я не знаю подробностей использования ghc -e
.
Учитывая, что вся интересная часть - это просто nub.map(fst.break('/'==).head.words).lines
, фактическое выражение кажется немногословным.
- Как сообщить ghc о модулях, которые мне нужно использовать, поэтому мне не нужно их квалифицировать, используя полное имя?
- Могу ли я заставить ghc забрать какой-то файл конфигурации, который содержит модули, которые я часто использую?
Мне бы очень хотелось увидеть некоторые примеры из других случаев, которые помогут мне улучшить способ использования haskell для этих небольших скриптов!
Sidenote: мастера Commandline-foo, вероятно, будут смеяться над этим, но я чувствую себя намного более комфортно, используя haskell, тогда bash scripting, так что это то, что я хочу использовать.