Как неоднократно отмечалось в других местах (например, 1 , 2 , ...) сценарии в haskell могут быть довольно мощными .
Быстрым способом также может быть режим оценки выражения ghc . это то, что я использую все чаще и чаще (мне очень нравится эта функция в Ruby).
Небольшой пример задачи:
«Выяснить все папки, содержащие git-различия между 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
, фактическое выражение кажется немного многословный.
Я был бы очень признателен, если бы увидел несколько примеров из других сценариев использования, которые помогут мне улучшить то, как я использую haskell для таких типов маленькие скрипты!
Замечание: мастера Commandline-foo, вероятно, посмеются над этим, но мне гораздо удобнее использовать haskell, чем сценарии bash, так что это то, что я хочу использовать.