Haskell设计一个显示字符串放大的程序

--1.输入的字符串中各字符放大(charTolarge)
--2.再拼接(sideByside)
--3.再输出(say,sayit)

module MyPicture where

type Pictrue=[String]

sideByside::Pictrue->Pictrue->Pictrue
sideByside pic1 pic2 =[x++y|(x,y)<-zip pic1 pic2]

formPic:: String->Int->Pictrue
formPic str n
            |n==1 =sideByside (charTolarge (str!!0)) (charTolarge (str!!1))
            |otherwise =sideByside ( formPic str (n-1))  (charTolarge (str!!n))

say::String->String
say str=unlines ( formPic str (length str-1))
sayit::String->IO ()
sayit=putStr.say

charTolarge:: Char->Pictrue
charTolarge c
       |c=='A'||c=='a'= ["  A    "," A A   ","A   A  ","AAAAA  ","A   A  "]
       |c=='B'||c=='b'=["BBBB   ","B   B  ","BBBB   ","B   B  ","BBBB   "]
       |c=='C'||c=='c'=[" CCCC  ","C      ","C      ","C      "," CCCC  "]
       |c=='D'||c=='d'=["DDD    ","D  D   ","D   D  ","D  D   ","DDD    "]
       |c=='E'||c=='e'=["EEEEE  ","E      ","EEEEE  ","E      ","EEEEE  "]
       |c=='F'||c=='f'=["FFFFF  ","F      ","FFFF   ","F      ","F      "]
       |c=='G'||c=='g'=[" GGGG  ","G      ","G  GG  ","G   G  "," GGG   "]
       |c=='H'||c=='h'=["H   H  ","H   H  ","HHHHH  ","H   H  ","H   H  "]
       |c=='I'||c=='i'=["IIIII  ","  I    ","  I    ","  I    ","IIIII  "]
       |c=='J'||c=='j'=[" JJJJ  ","   J   ","   J   ","J  J   "," JJ    "]
       |c=='K'||c=='k'=["K  KK  ","K K    ","KK     ","K K    ","K  KK  "]
       |c=='L'||c=='l'=["L      ","L      ","L      ","L      ","LLLLL  "]
       |c=='M'||c=='m'=["M   M  ","MM MM  ","M M M  ","M M M  ","M M M  "]
       |c=='N'||c=='n'= ["N   N  ","NN  N  ","N N N  ","N  NN  ","N   N  "]
       |c=='O'||c=='o'=[" OOO   ","O   O  ","O   O  ","O   O  "," OOO   "]
       |c=='P'||c=='p'=["PPPP   ","P   P  ","PPPP   ","P      ","P      "]
       |c=='Q'||c=='q'=[" QQQ   ","Q   Q  ","Q   Q  ","Q  Q   "," QQ Q  "]
       |c=='R'||c=='r'=["RRRR   ","R   R  ","RR R   ","R R    ","R  RR  "]
       |c=='S'||c=='s'=[" SSSS  ","S      ","SSSSS  ","    S  ","SSSS   "]
       |c=='T'||c=='t'=["TTTTT  ","  T    ","  T    ","  T    ","  T    "]
       |c=='U'||c=='u'=["U   U  ","U   U  ","U   U  ","U   U  ","UUUUU  "]
       |c=='V'||c=='v'=["V   V  ","V   V  ","V   V  "," V V   ","  V    "]
       |c=='W'||c=='w'=["W   W  ","W W W  ","W W W  ","W W W  "," W W   "]
       |c=='X'||c=='x'=["X   X  "," X X   ","  X    "," X X   ","X   X  "]
       |c=='Y'||c=='y'=["Y   Y  "," Y Y   ","  Y    ","  Y    ","  Y    "]
       |c=='Z'||c=='z'=["ZZZZZ  ","   Z   ","  Z    "," Z     ","ZZZZZ  "]
       |c=='0'=[" 000   ","00  0  ","0 0 0  ","0  00  "," 000   "]
       |c=='1'=["  1    "," 11    ","  1    ","  1    ","11111  "]
       |c=='2'=[" 222   ","2   2  ","   2   ","  2    ","22222  "]
       |c=='3'=["3333   ","    3  "," 333   ","    3  ","3333   "]
       |c=='4'=["   4   ","  44   "," 4 4   ","44444  ","   4   "]
       |c=='5'=["55555  ","5      ","55555  ","    5  ","55555  "]
       |c=='6'=["66666  ","6      ","66666  ","6   6  ","66666  "]
       |c=='7'=["77777  ","   7   ","  7    ","  7    ","  7    "]
       |c=='8'=["88888  ","8   8  ","88888  ","8   8  ","88888  "]
       |c=='9'=["99999  ","9   9  ","99999  ","    9  ","99999  "]
       |c==' '=["   ","   ","   ","   ","   "]
       |otherwise = error "out of the scope of A-Z or 0-9"       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值