나는 하스켈을 배우려고하고 있는데, 나는 계승을 계산하기 위해 다음과 같은 간단한 재귀 함수를 정의했다.기능이 소수에 적용될 때 음수에 대해 지정된 오류가 지정되었습니다. 왜?
fact n | n < 0 = error "fact only valid for non-negative integers"
| n == 0 = 1
| n > 0 = n * fact(n-1)
양의 정수에는 정상적으로 작동하고 음수로 호출하면 예상대로 오류가 발생합니다.
무엇이 문제인가? : fact 10.5
과 같이 분수에 적용하려고하면 동일한 오류 ("음수가 아닌 정수에만 유효합니다")가 표시됩니다. 왜 내가 분명히 지정한 같은 오류가 n <의 경우에만 적용되어야하는지 알려줍니다.
감사합니다. 물론 그것은 의미가 있습니다. 나는 이것을 알아 내야했다. 그렇게 할 수있게되면 대답을 받아 들일 것입니다. – Curious2learn