Haskell程式列印8星圖案
在本教程中,我們將學習如何開發一個Haskell程式,使用內部的`replicate`和`concat`函式來列印8星圖案。
“8”星圖案是用星號(*)表示的數字8的ASCII藝術表示,如下所示:
******** * * * * ******** * * * * ********
星號的排列方式使其形成數字8的形狀。
演算法
步驟1 - 使用`replicate`函式定義`printLine`函式,如下所示:
步驟2 - 程式執行將從`main`函式開始。`main()`函式控制整個程式。它寫成`main = do`。在`main`函式中,傳遞一個數字,程式將列印到該數字的8星圖案。
步驟3 - 變數“n”被初始化。它將儲存要列印的8星圖案的整數。
步驟4 - 函式呼叫後,使用`putStrLn`語句將結果列印到控制檯。
在這個方法中,列印了數字8的ASCII藝術表示。`printEight`函式以整數n作為引數,並返回表示數字8的字串。`printLine`函式以整數n作為引數,並返回n個星號後跟換行符的字串。
示例1
在這個示例中,使用`replicate`函式定義函式來列印8星圖案。
module Main where printLine :: Int -> String printLine n = replicate n '*' ++ "
" printEight :: Int -> String printEight n = concat [ printLine n , "*" ++ replicate (n-2) ' ' ++ "*
" , printLine n , "*" ++ replicate (n-2) ' ' ++ "*
" , printLine n ] main :: IO () main = putStr (printEight 8)
輸出
******** * * ******** * * ********
示例2
在這個示例中,使用`replicate`函式定義函式來列印8星圖案。
module Main where printRow :: Int -> String printRow n = replicate n '*' ++ "
" printEight :: Int -> String printEight n = concat [ printRow n , "*" ++ replicate (n-2) ' ' ++ "*
" , "*" ++ replicate (n-2) ' ' ++ "*
" , printRow n , "*" ++ replicate (n-2) ' ' ++ "*
" , "*" ++ replicate (n-2) ' ' ++ "*
" , printRow n ] main :: IO () main = putStr (printEight 8)
輸出
******** * * * * ******** * * * * ********
結論
在本文中,我們學習瞭如何建立一個Haskell程式,使用`replicate`和`concat`等內部函式列印8星圖案。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP