使用庫函式查詢數字冪的Haskell程式
本教程將幫助我們使用庫函式查詢數字的冪。基數和指數作為引數傳遞,用於查詢傳遞的基數的指數冪。最終輸出將顯示。
例如,對於基數 = 2;指數 = 3,它將返回 8。
語法
power x y = product (replicate (fromInteger y) x)
Product 函式計算列表中所有元素的乘積
power x y = foldl (*) 1 (replicate (fromInteger y) x)
Foldl 將第一個元素與列表以及第二個引數一起,將函式應用於它們,然後它將結果和第二個引數饋送到函式,並繼續到最後一個元素。
power x y = foldr (*) 1 (replicate (fromInteger y) x)
Foldr 函式將獲取第二個引數和列表中的最後一個元素以應用函式,然後它將獲取倒數第二個元素並給出結果,並繼續到最後一個元素。
演算法
步驟 1 - 定義冪函式
步驟 2 - 程式執行將從主函式開始。main() 函式控制整個程式。
步驟 3 - 初始化名為“base”和“exponent”的變數。它將包含基數和指數的值。
步驟 4 - 使用 'putStrLn' 語句顯示最終結果值。
使用 Product 函式和列表
在本例中,使用 replicate 函式建立 x 重複 y 次的列表,並使用 product 計算該列表中元素的乘積,即 x 的 y 次冪。
示例 1
power :: Integer -> Integer -> Integer
power x y = product (replicate (fromInteger y) x)
main :: IO()
main = do
let base = 5
let exponent = 3
let result = power base exponent
putStrLn ("Result: " ++ show result)
輸出
Result: 125
使用 foldl 函式
在本例中,foldl 函式用於對 replicate 建立的列表的每個元素執行操作並累積結果。
示例 2
power :: Integer -> Integer -> Integer
power x y = foldl (*) 1 (replicate (fromInteger y) x)
main :: IO()
main = do
let base = 5
let exponent = 3
let result = power base exponent
putStrLn ("Result: " ++ show result)
輸出
Result: 125
使用庫函式和 foldr 函式
在本例中,foldr 函式用於對 replicate 建立的列表的每個元素執行操作,並以相反的順序累積結果。
示例 3
power :: Integer -> Integer -> Integer
power x y = foldr (*) 1 (replicate (fromInteger y) x)
main :: IO()
main = do
let base = 5
let exponent = 3
let result = power base exponent
putStrLn ("Result: " ++ show result)
輸出
Result: 125
使用冪函式
在本例中,透過呼叫 power x y 來使用該函式,其中 x 是基數,y 是指數。例如,power 2 3 將返回 8。
示例 4:
power :: Integer -> Integer -> Integer
power x 0 = 1
power x y = x * power x (y-1)
main :: IO()
main = do
let base = 5
let exponent = 3
let result = power base exponent
putStrLn ("Result: " ++ show result)
輸出
Result: 125
結論
在 Haskell 中,有各種方法可以在不使用庫函式的情況下找到數字的冪。這可以透過使用 product 函式和列表、使用 foldl、foldr 函式甚至冪函式來實現。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP