Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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 GHCi中的输入长度限制_Haskell_Ghci - Fatal编程技术网

Haskell GHCi中的输入长度限制

Haskell GHCi中的输入长度限制,haskell,ghci,Haskell,Ghci,我编程了kakuro解算器,但用户的输入有问题。当用户希望输入长度超过1024个字符时,haskell会修剪输入并抛出异常 <interactive>:9:1024: parse error (possibly incorrect indentation or mismatched brackets) 但WinGHCi将其修剪为 kakuro [(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-

我编程了kakuro解算器,但用户的输入有问题。当用户希望输入长度超过1024个字符时,haskell会修剪输入并抛出异常

<interactive>:9:1024:
    parse error (possibly incorrect indentation or mismatched brackets)
但WinGHCi将其修剪为

kakuro [(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-1,0,6),(-1,0,23),(-2,0,0),(-2,0,0),(-1,0,7),(-1,0,23),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-1,0,18),(-1,0,12),(-2,0,0),(-1,0,12),(-1,0,26),(-1,9,0),(0,0,0),(0,0,0),(-2,0,0),(-1,13,19),(0,0,0),(0,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-1,7,23),(0,0,0),(0,0,0),(-1,3,0),(0,0,0),(0,0,0),(-1,5,16),(0,0,0),(0,0,0),(-1,18,10),(0,0,0),(0,0,0),(0,0,0),(-2,0,0),(-2,0,0),(-1,7,0),(0,0,0),(0,0,0),(0,0,0),(-1,10,0),(0,0,0),(0,0,0),(0,0,0),(-1,21,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(-2,0,0),(-2,0,0),(-1,20,15),(0,0,0),(0,0,0),(0,0,0),(-1,24,0),(0,0,0),(0,0,0),(0,0,0),(-1,11,20),(0,0,0),(0,0,0),(0,0,0),(-1,0,17),(-2,0,0),(-2,0,0),(-1,14,0),(0,0,0),(0,0,0),(-1,0,23),(-1,0,12),(-1,0,15),(-1,20,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(-1,10,0),(0,0,0),(0,0,0),(-2,0,0),(-2,0,0),(-1,26,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(0,0,0),(-1,0,13),(-2,0,0),(-1,13,19),(0,0,0),(0,0,0),(-1,13,0),(0,0,0),(0,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-1,33,0),(0,0,0)
我尝试使用monad,但也有同样的问题,我必须将输入拆分到更多行

是否有任何选项,如何输入长度超过1024个字符的输入?

确定:

λ> :{
|  let result =
|       kakuro [
|    (-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),(-2,0,0),
|    (-2,0,0),(-2,0,0),(-1,0,6),(-1,0,23) ...
|      -- AND SO ON...
|              ]
| :}
然后只需评估
结果

但是,我认为您已经从上一个命令的结果中获取了列表。在GHCi中,前面表达式的结果是
it
,因此您可以编写
kakuro-it
。如果尚未执行此操作,请从文件中读取:

λ> kakurodata <- read `fmap` readFile "/file/data/here.txt"
λ> kakuro kakurodata
λ>kakurodata kakurokakurodata

编辑:@Carsten指出,你可以将它链接到一个文件中,然后加载它。谢谢

虽然AJFarmar的回答工作我自己也不喜欢在ghci中这样做——我只是把我的输入放在一个.hs文件中并加载它(
:load myFile.hs
);)我总是想指出,使用
:set+m
,您可以在GHCi中进行多行输入。我将其保存在.ghci设置文件中。这避免了需要使用
:{:}
包装器,尽管它仍然可以使用。
λ> kakurodata <- read `fmap` readFile "/file/data/here.txt"
λ> kakuro kakurodata