我将尝试尽可能清楚地解释这一点,因为我是 Haskell 的菜鸟。我使用以下代码制作了一个非常简单的程序:
module Main where
main = interact (unlines . map reverse . lines)
当我运行它并输入main
+enter ,然后输入一个单词、句子或任何东西时,我把它反过来了。现在我需要将一个 .txt 文件传递给它。但我不能这样做。我正在使用的作业表是这样解释的:
编译程序(从解释器运行它不会正常工作!),然后运行它,同时重定向标准输入以从文件 in.txt 中读取。在 Windows 机器上,这可以使用以下命令来实现:
Main < in.txt
在 Mac 和 Linux 机器上,您需要使用以下命令:
./Main < in.txt
这似乎对我不起作用;当我输入时Main < derp.txt
,我得到了错误
<interactive>:3:1: Not in scope: data constructor 'Main'
<interactive>:3:8: Not in scope: 'derp'
<interactive>:3:13: Not in scope: 'txt'
我究竟做错了什么?请记住,我是一个绝对的初学者,所以这个问题可能很愚蠢。