我正在使用计划。我找到某个列表的总和没有问题,但是当列表中有列表或AKA嵌套列表时,我很难添加总和。
(define (my-summation li)
(if (null? li)
0
((if (list? (car li)) (my-summation (car li))
(+ (car li) (my-summation (cdr li)))))))
这是我的输入,这是错误的结果。 Scheme是我的弱点,因为它涉及递归,但我似乎无法找到问题。
> (my-summation '(6 3 -2 5 '(4 2 -3) 4 ))
function call: expected a function after the open parenthesis, but received -3
答案 0 :(得分:2)
它在括号中,你在if
附近有一个额外的集合。此外,当它在引用列表中时,您不需要引用列表。并且(list? (car li))
案例不正确,它应该对元素和列表的其余部分求和。
(define (my-summation li)
(if (null? li)
0
(if (list? (car li))
(+ (my-summation (car li)) (my-summation (cdr li)))
(+ (car li) (my-summation (cdr li))))))
(my-summation '(6 3 -2 5 (4 2 -3) 4))
结果总和为19
。
答案 1 :(得分:1)
另一种解决方案:
class foo
{
public List<bar> bars = new List<bar>();
}
class bar
{
public List<qux> qux = new List<qux>();
}
class qux
{
public string hash { get; set; }
public int size { get; set; }
}