我正在 Haskell 中实现 Pascal Triangle,但代码没有以正确的方式工作。该代码又给出了 1 行。我也试图像树一样打印结果,但这对我来说很困难和困惑,所以我没有添加打印代码。
这些是我得到的结果:
*Main> pascal 1
[[1],[1,1]]
*Main> pascal 2
[[1],[1,1],[1,2,1]]
Run Code Online (Sandbox Code Playgroud)
预期输出:
*Main> pascal 2
[[1],[1,1]]
Run Code Online (Sandbox Code Playgroud)
理想输出:
*Main> pascal 3
1
1 1
1 2 1
Run Code Online (Sandbox Code Playgroud)
这是代码:
choose n 0 = 1
choose 0 k = 0
choose n k = choose (n-1) (k-1)* n `div` k
pascal :: Integer -> [[Integer]]
pascal 0 = [[1]]
pascal m = pascal (m - 1) ++ [[choose m k | k <- [0,1..m]]]
Run Code Online (Sandbox Code Playgroud)