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