Hen*_*nes 5 haskell out-of-memory
我还是一个哈斯克新手,所以请原谅我糟糕的代码风格.
我需要在写入文件的框中使用所有类型的字母组合.事实上,我需要所有这些线路来对旧的谜题进行蛮力攻击.一行包含26个字母和10个数字的组合.在拼图中给出,前6个字符是字母.
现在这是我的代码:
import Data.List (delete)
letters = ['A'..'Z']
allChars = letters ++ ['0'..'9']
boxContents :: [Char] -> [Char] -> [[Char]]
boxContents l lp = [a:b:c:d:e:f:delete f(delete e(delete d(delete c (delete b (delete a lp))))) |
a <- l,
b <- delete a l,
c <- delete b (delete a l),
d <- delete c (delete b (delete a l)),
e <- delete d (delete c (delete b (delete a l))),
f <- delete e (delete d (delete c (delete b (delete a l))))
]
main :: IO()
main = writeFile "c:\\bc.txt" $ unlines $ boxContents letters allChars
Run Code Online (Sandbox Code Playgroud)
它耗尽了我的16 GB RAM并且消耗100 GB页面文件直到它死掉.我确信我可以在普通的旧C中编写一个简单的程序,它使用少于64 kB的RAM来生成这个文件.但这不是重点:关键是如何在Haskell中完成这项工作?哪里是我的错?
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |