5
tôi đang học Haskell và viết chức năng này:Learning Haskell: thunks trả về bởi lặp lại
continueWith :: [a] -> a -> [a]
continueWith [] y = repeat y
continueWith (x:xs) y = x : (continueWith xs y)
Bây giờ, tôi không hiểu được hành vi của GHCi:
GHCi> let x = continueWith [1, 2] 3
x :: [Integer]
GHCi> :sp x
x = _
GHCi> take 3 x
[1,2,3]
it :: [Integer]
GHCi> :sp x
Các sprint
doesn cuối cùng 't chấm dứt, nhưng tôi mong đợi các thunk trả về bởi repeat
được chỉ đánh giá lên đến khuyết điểm đầu tiên:
...
GHCi> take 3 x
[1,2,3]
it :: [Integer]
GHCi> :sp x
x = 1 : 2 : 3 : _ <= This is not happening
Tôi đang thiếu gì?