我需要编写一个 Haskell 程序,该程序将递归生成菱形输出。这是给定输入的一些示例输出
输入:1
输出:
*
* *
*
输入:2
输出:
*
* *
*
* *
* * * *
* *
*
* *
*
输入:3
输出:
*
* *
*
* *
* * * *
* *
*
* *
*
* *
* * * *
* *
* * * *
* * * * * * * *
* * * *
* *
* * * *
* *
*
* *
*
* *
* * * *
* *
*
* *
*
我写了以下函数:
next 0 = [1,0,1]
next n = map (+3^n) (next (n-1)) ++ next (n-1) ++ map (+3^n) (next (n-1))
lpad n = map (++"*") (zipWith ($) (map (take)(next (n-1))) ((repeat(repeat ' '))))
pretty n = putStrLn $ intercalate "\n" $ lpad n
给出以下输出:
漂亮 1
*
*
*
漂亮 2
*
*
*
*
*
*
*
*
*
谁能帮我剩下的一半?提前致谢。