この解決策を思いついた後、パスカルの三角形を任意の行まで出力しようとしています。
next xs = zipWith (+) ([0] ++ xs) (xs ++ [0])
pascal n = take n (iterate next [1])
main = do
n <- readLn :: IO Int
mapM_ putStrLn $ map show $ pascal n
印刷を除いて、これは非常にうまく機能します。申請すると、次のようpascal 4
になります。
[1]
[1,1]
[1,2,1]
[1,3,3,1]
私が本当に欲しいのはこれです:
1
1 1
1 2 1
1 3 3 1
これを行う方法はありますか?