oCaml 中的帕斯卡三角形:获取下一行作为列表

问题描述 投票:0回答:1

我正在尝试获取一个 oCaml 函数,该函数将帕斯卡三角形的下一行作为列表给出,例如:

(下一行:int -> 列表 -> int 列表)

让 get_next_line [1;1] 返回 [1;2;1] 等等。

我尝试过这样的事情,但不知道如何继续:

let rec next_line lst acc = match lst with
| [] -> [1]
| hd::tl -> (* need directions here *)

list recursion functional-programming ocaml pascals-triangle
1个回答
0
投票

如果我有一个列表

[1; 1]
,我如何到达
[1; 2; 1]
?好吧,想象一下,如果我将
0
添加到列表的开头,然后将
0
添加到列表的末尾,那么我就有两个三元素列表:
[0; 1; 1]
[1; 1; 0]

我可能可以编写一个递归函数,或者在标准库中找到一个递归函数,它将两个列表的相应元素相加,并给我

[1; 2; 1]

如果我能做到这一点,那么用

[1; 2; 1]
重复同样的操作就会得到
[0; 1; 2; 1]
[1; 2; 1; 0]
,然后是
[1; 3; 3; 1]

© www.soinside.com 2019 - 2024. All rights reserved.