1
내가 하나의 방법으로 성공 기능 제품 사용 후 K 요소, 모든 존재가 n 목록을 건설,에 의해 전원 기능을 계산합니까 :어떻게
power1 :: Integer -> Integer -> Integer
power1 n k | k < 0 = error "power not defined for negative exponent"
| otherwise = product (replicate (fromInteger k) n)
을하지만 당신은 그것을 어떻게해야합니까 함수 안에 목록 이해력? 나는 몇 시간 동안 그것을 풀려고했지만 꽤 이해할 수는 없다.
power1 :: Integer -> Integer -> Integer
power1 n k=product
감사합니다. 내가 생각했던 것보다 훨씬 덜 복잡했다. 어떻게하면 더 효율적으로 작성하겠습니까? 아마 이것처럼? : power :: 정수 -> 정수 -> 정수 power n k |전원 n = 1 전원 nk = n * 전원 n (k-1) –
"^"이 (는) [정의 됨] (https : //hackage.haskell)을 확인하십시오. org/package/base-4.9.0.0/docs/src/GHC.Real.html # % 5E)을'base'에 추가하십시오. – redneb
@ EL- 더 좋은 알고리즘이 있습니다. 예 : 'pow (2 * n) = pow (a * a) n'과'pow (2 * n + 1) = a * pow 'n'대신에 'log n' 연산을 수행합니다. 큰 'n'의 경우 훨씬 효율적입니다. – chi