test :: [Int] -> [Int]
test l | (length l) > 5 = l
| otherwise = test l ++ take 1 searchSpace
where searchSpace = zipWith (*) [100..999] [100..999]
上面的代碼爲我提供了堆棧溢出。我假設Haskell在searchSpace中完全評估並存儲zipWith的結果。如果我只想讓我的程序逐步應用take 1
,那麼創建此列表的方式會是什麼?乘以兩個列表導致堆棧溢出
如果你想問一下關於堆棧溢出的問題,可以在元XD – aIKid