Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 更改GHC Monad中的目录_Haskell_Ghc_Ghci - Fatal编程技术网

Haskell 更改GHC Monad中的目录

Haskell 更改GHC Monad中的目录,haskell,ghc,ghci,Haskell,Ghc,Ghci,查看ghc软件包文档,我发现此功能: workingDirectoryChanged::GhcMonad m=>m() 通知GHC工作目录已更改。GHC将刷新其模块位置缓存,因为它可能不再有效 注意:在更改工作目录之前,请确保在同一会话中运行的所有线程都已停止。如果更改工作目录,还应卸载当前程序(将目标设置为空,然后是加载) 我需要在更改目录时运行加载的代码和编译表达式。有什么办法/解决办法吗 我能想到的一个解决方案是使用单独的目录,并在调用解释器时将workdir设置为该目录,然后恢复旧的pw

查看ghc软件包文档,我发现此功能:

workingDirectoryChanged::GhcMonad m=>m()

通知GHC工作目录已更改。GHC将刷新其模块位置缓存,因为它可能不再有效

注意:在更改工作目录之前,请确保在同一会话中运行的所有线程都已停止。如果更改工作目录,还应卸载当前程序(将目标设置为空,然后是加载)


我需要在更改目录时运行加载的代码和编译表达式。有什么办法/解决办法吗


我能想到的一个解决方案是使用单独的目录,并在调用解释器时将workdir设置为该目录,然后恢复旧的pwd,但我不确定它是否有效,或者这是否是最佳解决方案。

也许您应该使用更高级的解决方案,如hint?“我需要在更改目录时运行加载的代码和编译表达式。”-您应该提供一些您希望在这里实现的内容的上下文;细节将决定你如何完成它。@arrowd hint使用GHC Monad,同样的规则应该适用,它们不能满足(我想这是一个罕见的用例)@user2407038我正在将haskell运行时嵌入zsh模块,它将加载和解释haskell代码这是非常广泛的;您希望嵌入什么Haskell代码,以及如何从zsh使用它?换句话说,是否有一个最小的示例,说明您希望编译
x
、更改目录、编译
y
,但由于上述限制(其中x和y是具体的程序)而无法工作?(作为一个潜在的解决方案,将
x
y
放入包中,并具有第三个模块
z
,该模块依赖于
x
y
,通过构建系统,例如cabal)。也许您应该使用更高级的模块,比如hint?“我需要在更改目录时运行加载的代码和编译表达式。”-您应该提供一些您希望在这里实现的内容的上下文;细节将决定你如何完成它。@arrowd hint使用GHC Monad,同样的规则应该适用,它们不能满足(我想这是一个罕见的用例)@user2407038我正在将haskell运行时嵌入zsh模块,它将加载和解释haskell代码这是非常广泛的;您希望嵌入什么Haskell代码,以及如何从zsh使用它?换句话说,是否有一个最小的示例,说明您希望编译
x
、更改目录、编译
y
,但由于上述限制(其中x和y是具体的程序)而无法工作?(作为一种可能的解决方案,将
x
y
放入包中,并具有第三个模块
z
,该模块依赖于
x
y
,通过构建系统,例如阴谋集团)。