gpt4 book ai didi

haskell - 运行 GHCI 时如何读取指定为函数参数的文件

转载 作者:行者123 更新时间:2023-12-03 14:50:51 26 4
gpt4 key购买 nike

我在 XP 的 dos 命令行中使用 ghci 6.10.4,在 emacs 中也使用 haskell-mode-2.4

运行在标准输入上运行的程序时,有没有办法可以将文件重定向为标准输入?例如,如果我有一个从标准输入读取的名为 main 的函数,我不能这样做:

*Main> main < words.txt

还有其他方法吗?

另外我希望能够在 ghci 窗口中输入标准输入,这似乎可以工作,但是 EOF 键是什么?我以为是 Ctrl-D 但这不起作用。

最佳答案

如果您返工 main,这将更容易。打开文件本身。

import System.Environment
import System.IO

main :: IO ()
main = do
args <- getArgs
case args of
[] -> doStuff stdin
file:_ ->
withFile file ReadMode doStuff

doStuff :: Handle -> IO ()
doStuff = …

*Main> System.Environment.withArgs ["main.txt"] main

在 GHCi 中不要在标准输入上给出 EOF。如果这样做,所有进一步尝试从标准输入读取都将失败:

前奏> getLine
*** 异常(exception): :hGetLine:非法操作(句柄已关闭)
Prelude> 获取内容
*** 异常(exception): :hGetContents:非法操作(句柄已关闭)

关于haskell - 运行 GHCI 时如何读取指定为函数参数的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735386/

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