【发布时间】:2020-01-13 14:56:28
【问题描述】:
我正在关注 this post 关于 Haskell 中的 reader monad。
从定义开始:
load :: Config -> String -> IO String
load config x -> readFile (config ++ x)
其中 Config 是 String 的类型别名,它代表一个目录名。
该方法旨在在屏幕上显示文件的内容,例如“./myFile.txt”。
我从 ghci 运行这个方法:
load "./" "myFile.txt"
第二个例子介绍了 reader monad:
load :: (MonadReader Config m, MonadIO m) => String -> m String
load x = do
config <- ask
liftIO $ readFile (config ++ x)
问题是:如何从 ghci 运行它?
我尝试过类似的东西:
(runReader load "myFile.txt") "./"
但没有快乐。
加载 ./myFile.txt 的命令是什么?
【问题讨论】:
-
您遇到的具体问题是什么? “不高兴”不是错误陈述。
-
尝试将
(runReader更改为runReader (。
标签: haskell monads reader-monad