gpt4 book ai didi

git - 用于脚本编写的 haskell 中的表达式评估模式

转载 作者:IT王子 更新时间:2023-10-29 01:30:39 25 4
gpt4 key购买 nike

正如其他地方多次提到的(例如 12 、...),haskell 中的脚本非常强大。
一个快速的方法也可以是 ghc expression evaluation mode .这就是我发现自己越来越多地使用的东西(我真的很喜欢 ruby​​ 中的这个特性)。
一个小示例任务:
“找出所有包含 HEAD 和特定修订版之间的 git diff 的文件夹”

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 用于这些类型的小脚本的方式!

旁注:Commandline-foo 向导可能会对此嗤之以鼻,但我觉得使用 haskell 比使用 bash 脚本更舒服,所以这就是我想使用的。

最佳答案

关于模块:ghc -e 使用你的 ~/.ghci 文件,所以在这种情况下,你需要添加 :m +Data.List 到它(自 GHC 7 左右以来也支持 import Data.List(nub))。

关于包:您可以使用 ghc-pkg hide somepackageghc-pkg expose somepackage 来定义默认的可见包集(虽然包默认是公开的;也许我误解了你的问题)。

您可能会找到 eddie有用。

关于git - 用于脚本编写的 haskell 中的表达式评估模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com