函数程序设计实验六:字符放大 晓风の个人博客

module MyPicture where
import Data.Char
import Data.List
import Text.Printf

sayit::String->IO()
sayit s=putStr(say s)

say::String->String
say s=unlines(says s)

getid::Char->Int
getid c=
    if oc>=97 then (oc-97+10)
    else if oc>=65 then (oc-65+10)
    else (oc-48)
        where oc=ord c

says::String->[String]
says []=[]
says (x:xs)=merge (alphabet!!(getid x)) (says xs)


merge::[String]->[String]->[String]
merge [] x=x
merge x []=x
merge (x:xs) (y:ys)=(x++y):(merge xs ys)


alphabet=
    [[
        "  ####  ",
        " ##  ## ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        "    #   ",
        "   ##   ",
        "  ###   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   "
    ],[
        "  ####  ",
        "  #  ## ",
        " ##  ## ",
        " #   ## ",
        "     ## ",
        "    ##  ",
        "   ##   ",
        "  ##    ",
        "  #     ",
        " #      ",
        " ###### "
    ],[
        "  ####  ",
        " ##  #  ",
        " #   ## ",
        "     ## ",
        "     #  ",
        "   ###  ",
        "     ## ",
        "      # ",
        " #   ## ",
        " ##  ## ",
        "  ####  "
    ],[
        "    ##  ",
        "    ##  ",
        "   ###  ",
        "   # #  ",
        "  #  #  ",
        " ##  #  ",
        " #   #  ",
        " ###### ",
        "     #  ",
        "     #  ",
        "     #  "
    ],[
        " ###### ",
        " ##     ",
        " #      ",
        " #####  ",
        " ##  ## ",
        "     ## ",
        "      # ",
        "      # ",
        " #   ## ",
        " ##  #  ",
        "  ###   "
    ],[
        "   ###  ",
        "  #  ## ",
        " ##   # ",
        " ##     ",
        " # ###  ",
        " ##  ## ",
        " ##   # ",
        " #    # ",
        " ##   # ",
        "  #  ## ",
        "   ###  "
    ],[
        " ###### ",
        "     ## ",
        "     #  ",
        "     #  ",
        "     #  ",
        "    ##  ",
        "    #   ",
        "    #   ",
        "   ##   ",
        "   #    ",
        "   #    "
    ],[
        "  ###   ",
        " ##  #  ",
        " #   ## ",
        " #   ## ",
        " ##  #  ",
        "  ####  ",
        " ##  ## ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        "  ###   ",
        " ##  #  ",
        " #   ## ",
        " #   ## ",
        " #   ## ",
        " ##  ## ",
        "  ##### ",
        "     ## ",
        " #   ## ",
        " ##  #  ",
        "  ###   "
    ],[
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "  ####  ",
        "  #  #  ",
        "  #  #  ",
        "  #  #  ",
        " ###### ",
        " #    # ",
        " #    # ",
        "##    ##"
    ],[
        " #####  ",
        " #   ## ",
        " #    # ",
        " #    # ",
        " #   ## ",
        " #####  ",
        " #   ## ",
        " #    # ",
        " #    # ",
        " #   ## ",
        " #####  "
    ],[
        "   ###  ",
        "  #  ## ",
        " ##   # ",
        " #    # ",
        " #      ",
        " #      ",
        " #      ",
        " #    # ",
        " #    # ",
        "  #  ## ",
        "   ###  "
    ],[
        " ####   ",
        " #   #  ",
        " #   ## ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #   ## ",
        " #   #  ",
        " ####   "
    ],[
        " ###### ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " ###### ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " ###### "
    ],[
        " ###### ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #####  ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      "
    ],[
        "   ###  ",
        "  #  ## ",
        " #    # ",
        " #    # ",
        " #      ",
        " #  ### ",
        " #    # ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "   #### "
    ],[
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " ###### ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # "
    ],[
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   "
    ],[
        "      # ",
        "      # ",
        "      # ",
        "      # ",
        "      # ",
        "      # ",
        "      # ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        " #   ## ",
        " #   #  ",
        " #  ##  ",
        " # ##   ",
        " ###    ",
        " ####   ",
        " #  #   ",
        " #  ##  ",
        " #   #  ",
        " #   ## ",
        " #    # "
    ],[
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " #      ",
        " ###### "
    ],[
        " ##  ## ",
        " ##  ## ",
        " ##  ## ",
        " ##  ## ",
        " ##  ## ",
        " ###### ",
        " # ## # ",
        " # ## # ",
        " # ## # ",
        " # ## # ",
        " # ## # "
    ],[
        " #    # ",
        " ##   # ",
        " ##   # ",
        " ###  # ",
        " # #  # ",
        " # #  # ",
        " #  # # ",
        " #  # # ",
        " #   ## ",
        " #   ## ",
        " #   ## "
    ],[
        "  ####  ",
        " ##  ## ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        " #####  ",
        " #   ## ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #   ## ",
        " #####  ",
        " #      ",
        " #      ",
        " #      ",
        " #      "
    ],[
        "  ####  ",
        " ##  ## ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #  ### ",
        " #  ### ",
        " ##  ## ",
        "  ##### "
    ],[
        " #####  ",
        " #   ## ",
        " #    # ",
        " #    # ",
        " #   ## ",
        " #####  ",
        " #  #   ",
        " #  ##  ",
        " #   #  ",
        " #   ## ",
        " #    # "
    ],[
        "  ####  ",
        " ##  ## ",
        " #    # ",
        " #      ",
        "  #     ",
        "   ##   ",
        "     ## ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        " ###### ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   "
    ],[
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " #    # ",
        " ##  ## ",
        "  ####  "
    ],[
        "##    ##",
        " #    # ",
        " #    # ",
        " ##  ## ",
        " ##  #  ",
        "  #  #  ",
        "  # ##  ",
        "  ####  ",
        "   ##   ",
        "   ##   ",
        "   ##   "
    ],[
        "## ## ##",
        "## ## ##",
        "## ## # ",
        " # ## # ",
        " # ## # ",
        " ## ### ",
        " ##  ## ",
        " ##  ## ",
        " ##  ## ",
        " ##  ## ",
        " ##  #  "
    ],[
        " #    # ",
        " ##  #  ",
        "  #  #  ",
        "  ###   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "  # ##  ",
        "  #  #  ",
        " ##  ## ",
        " #    # "
    ],[
        " #    # ",
        " #    # ",
        "  #  #  ",
        "  #  #  ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   ",
        "   ##   "
    ],[
        " ###### ",
        "     ## ",
        "     #  ",
        "    ##  ",
        "    #   ",
        "   ##   ",
        "   #    ",
        "  #     ",
        " ##     ",
        " #      ",
        " ###### "
    ]]