我想跟踪计算列表长度的版本与以下终止时间的差异。我有一个递归和一个尾递归。不知何故,我在 ghci 中运行时遇到了问题(见下文)
-- 4-1 a) Laenge einer Liste --
import Criterion.Main
main :: IO ()
main = defaultMain [
bgroup "myList" [ bench "1" $ whnf myList [1]
, bench "2" $ whnf myList [1,2]
, bench "3" $ whnf myList [1,2,3]
, bench "4" $ whnf myList [1,2,3,4]
, bench "10" $ whnf myList [1,2,3,4,5,6,7,8,9,10]
, bench "20" $ whnf myList [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
]
bgroup "myListner" [ bench "1" $ whnf myListner [1]
, bench "2" $ whnf myLister [1,2]
, bench "3" $ whnf myListner [1,2,3]
, bench "4" $ whnf myListner [1,2,3,4]
, bench "10" $ whnf myListner [1,2,3,4,5,6,7,8,9,10]
, bench "20" $ whnf myListner [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
]
]
--endrekursiv
myList:: [a]->Integer
myList []=0
myList (x:xs)= myHelpList 1 xs
where
myHelpList:: Integer-> [a]->Integer
myHelpList acc [] = acc
myHelpList acc (x:xs) = myHelpList (acc+1) xs
--nicht endrekursiv
myListner::[a]->Integer
myListner []=0
myListner (x:xs)= 1+ myList xs
Ghci 返回:
laenge.hs:3:8:
Could not find module ‘Criterion.Main’
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Prelude>
任何人都可以帮助我吗?