我是另一个尝试使用 SML 元素完成 MOOC 课程的初学者。我想生成一个带有列表的函数,并生成第二个列表,其中元素相加。
如果正确完成,此函数将转换
before_reaching_sum_test([1,2,3,4,5,6,7,8,9]);
为以下列表
[1,3,6,10,16,23,31,40]
这是我到目前为止所拥有的,但我很确定我做错了。
fun before_reaching_sum_test(ints: int list) =
if null (tl ints)
then []
else (hd ints + hd (before_reaching_sum_test(tl ints)))::(before_reaching_sum_test(tl ints))
我知道这将省略初始列表的最后一个元素。但是这样的事情会起作用吗?