使用遞迴查詢自然數之和的 Haskell 程式
在 Haskell 中,我們使用遞迴和尾遞迴來查詢自然數之和。在第一個示例中,我們將使用遞迴以及基本情況和遞迴情況;在第二個示例中,我們將使用 sumNat 函式;在第三個示例中,我們將使用使用者定義的尾遞迴函式。
演算法
步驟 1 − 定義使用者自定義的遞迴函式 sumOfNaturalNumbers,
適用於示例 1、2 和 3
sumOfNaturalNumbers 0 = 0 sumOfNaturalNumbers n = n + sumOfNaturalNumbers (n - 1).
適用於示例 4
sumNat' 0 acc = acc sumNat' n acc = sumNat' (n-1) (n + acc).
步驟 2 − 程式執行將從 main 函式開始。main() 函式控制整個程式。它被寫成 main = do。在 main 函式中,n 的值設定為 10 並傳遞給 sumOfNaturalNumbers 函式,該函式返回從 1 到 10 的自然數之和。
步驟 3 − 初始化名為“n”的變數。它將儲存要列印總和的數字。
步驟 4 − 呼叫函式後,使用“print”函式將結果總和列印到控制檯。
示例 1
在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用使用者自定義的遞迴函式來完成。
sumOfNaturalNumbers :: Integer -> Integer sumOfNaturalNumbers 0 = 0 sumOfNaturalNumbers n = n + sumOfNaturalNumbers (n - 1) main :: IO () main = do let n = 10 print (sumOfNaturalNumbers n)
輸出
55
示例 2
在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用使用者自定義的遞迴 sumNat 函式來完成。
sumNat :: Integer -> Integer sumNat 0 = 0 sumNat n = n + sumNat (n-1) main :: IO () main = do let num = 5 print (sumNat num)
輸出
15
示例 3
在這個示例中,我們將瞭解如何使用遞迴情況查詢自然數之和。它使用一個名為“sum'”的函式,該函式以一個整數作為引數。該函式使用一個遞迴情況,其中基本情況是當輸入整數為 0 時,在這種情況下,該函式返回 0。在另一種情況下,當輸入整數大於 0 時,該函式將輸入整數新增到遞迴呼叫該函式的結果中,並將輸入整數減 1。
sum' :: Integer -> Integer sum' n | n == 0 = 0 | n > 0 = n + sum' (n-1) main :: IO () main = do let num = 5 print (sum' num)
輸出
15
示例 4
在這個示例中,我們將瞭解如何使用遞迴查詢自然數之和。這可以透過使用尾遞迴函式來完成。
sumNat' :: Integer -> Integer -> Integer sumNat' 0 acc = acc sumNat' n acc = sumNat' (n-1) (n + acc) main :: IO () main = do let num = 10 print (sumNat' num 0)
輸出
55
結論
在 Haskell 中,要使用遞迴查詢自然數之和,我們可以使用使用者自定義函式、case 語句或尾遞迴方法。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP