-- generates names in the following order
-- a, b, c ... z, aa, ba, ca, ... za, ab, bb, cb ...
nextName :: String -> String
nextName [] = "a"
nextName (x:xs) = if x == 'z' then 'a' : nextName xs else succ x : xs
-- verify if the number of names generated is as expected.
countNames :: String -> String -> Int
countNames start end = loop 1 start
where
loop acc next =
if next == end then
acc
else
loop (acc + 1) (nextName next)
運行countNames "a" "zzzzzz"
在ghci中簡單字符串生成中的空間泄漏。爲什麼?
在我的COM運行它佔據了整個內存和需要大量的時間來完成的地獄。
如果有人指出發生空間泄漏的位置和原因,請注意它嗎?
製作'loop'嚴格其參數。 – Satvik
你是如何編譯的? – jberryman