使用迴圈顯示字母 (A-Z) 的 Haskell 程式
本教程將討論編寫一個在 Haskell 程式語言中顯示 A-Z 字元的程式。Haskell 是一種函式式、宣告式和強型別語言。Haskell 中的計算是數學函式。
在本教程中,我們將看到兩種在 Haskell 中顯示字母的方法。
一個迭代程式來顯示字母。
一個遞迴程式來顯示字母。
注意− Haskell 不支援迴圈,因此我們使用其他迭代和遞迴實現來模擬迴圈的功能。
演算法步驟
實現列印字母的邏輯。
列印/顯示字母。
使用列表推導式以迭代方式顯示字母。
示例
使用列表推導式以迭代方式顯示字母的程式。
import Data.Char main :: IO() main = do -- generating alphabets from A-Z as list of characters let alphabets=[chr x | x<-[65..90]] -- printing the list of Characters print ("Alphabets from A-Z are:") print alphabets
輸出
"Alphabets from A-Z are:" "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
注意 - 使用空格區分字母。實際輸出中字元之間沒有空格。字元列表是字串。
在上面的程式中,我們匯入了 Char 模組,因為預設情況下並非所有函式都對使用者可用。匯入模組的語法是 import Data.MODULE_NAME。在主函式中,我們使用列表推導式生成 A-Z 的字元列表。其中,我們生成從 65 到 90 的整數。我們知道大寫字母的 ASCII 值範圍是 65 到 90。生成數字後,我們使用生成的數字作為引數呼叫 chr 函式並將它們載入到列表中。其中 chr 是 Char 模組中提供的函式,它接收一個整數(ASCII 值)作為輸入,並將其轉換為與該數字的 ASCII 值對應的字元。如果輸入數字是 66,因為 'B' 的 ASCII 值是 66,則返回 'B'。
使用遞迴函式以遞迴方式顯示字母
示例
使用遞迴函式以遞迴方式顯示字母的程式。
import Data.Char import Data.Char -- function to print uppercase letters a-z -- function declaration printAlphabets :: Int -> IO() -- function definition -- base case printAlphabets 25 = do print ('Z') printAlphabets d = do putStr (show (chr (65+d)) ++ " ") printAlphabets (d+1) -- function to print lowercase letters a-z -- function declaration printAlphabets2 :: Int -> IO() -- function definition printAlphabets2 25 = do print ('z') printAlphabets2 d = do putStr (show (chr (97+d)) ++ " ") printAlphabets2 (d+1) main :: IO() main = do -- invoking printAlphabets function print ("Alphabets from A-Z are:") printAlphabets 0 print ("Alphabets from a-z are:") printAlphabets2 0
輸出
"Alphabets from A-Z are:" 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z' "Alphabets from a-z are:" 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
在上面的程式中,我們匯入了 Char 模組以獲取對字元的有用函式。我們實現了 printAlphabets 函式來列印 A-Z 的大寫字母。我們宣告此函式,使其接收一個整數作為輸入並返回 IO。在函式定義中,此函式將整數 d 作為初始偏移量。它將偏移量新增到 65,因為大寫字母的 ASCII 值從 65 開始。我們使用了 Char 模組中的內建函式,該函式接收 ASCII 值並返回與該 ASCII 數字對應的字元。我們使用 show 函式列印返回的字元,該函式將字元轉換為字串,因為 putStr 函式僅列印字串。最後,我們遞迴呼叫同一個函式,直到滿足基本情況,即 d = 25。類似地,我們實現了 printAlphabets2 來列印小寫字母,其中偏移量為 97,因為小寫字母的 ASCII 值從 97 開始。
結論
在本教程中,我們討論了兩種不同的方法來編寫一個在 Haskell 程式語言中顯示字母 (A-Z) 的程式。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP