我需要編寫一個將以遞歸方式生成鑽石輸出的Haskell程序。 這裏是給定的輸入輸出示例
使用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
*
*
*
*
*
*
*
*
*
誰能幫助我的另一半?提前致謝。
這被要求在PUCSD考試。 (浦那大學計算機科學系)。 – 2012-12-10 18:33:43
它是我的主人。 – 2012-12-10 18:36:59