저는 하스켈을 처음 접했고 무한 루프가 발생했습니다. 그러나 왜 그런지 모르겠습니다.pow 함수의 무한 루프
module Main where
pow :: Int -> Int -> Int
pow x 0 = 1
pow x y = x * pow x y-1
main :: IO()
main = print(pow 2 3)
아이디어가 있으십니까?
저는 하스켈을 처음 접했고 무한 루프가 발생했습니다. 그러나 왜 그런지 모르겠습니다.pow 함수의 무한 루프
module Main where
pow :: Int -> Int -> Int
pow x 0 = 1
pow x y = x * pow x y-1
main :: IO()
main = print(pow 2 3)
아이디어가 있으십니까?
pow x y = x * pow x y-1
당신이 생각하는대로하지 않습니다.
pow x y = (x) * (pow x y) - (1)
^^^^^^^^^
infinite loop
이제 무한 루프를보다 명확하게 볼 수 있습니다. (1)`이 아닌`X + (펑 X (Y-1)) - 당신은`(X) + (펑 XY), y-1
을 괄호로하는
pow x y = x * pow x (y-1)
고마워요.이 말이 맞습니다.) – Lazyexpert
그리고 확실히 (+)가 아니지만 (*) =))) – Lazyexpert
@Lazyexpert 네,하지만 그건 질문이 아닙니다 :) – Rakete1111
'X + 펑의 x 및 y-1' 방법이 필요 '. –