Haskell GHCi中的输入长度限制
我编程了kakuro解算器,但用户的输入有问题。当用户希望输入长度超过1024个字符时,haskell会修剪输入并抛出异常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),(-
<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