创建一个scheme函数,返回列表中负数的平均值

时间:2017-05-20 10:16:40

标签: scheme computer-science

我试图找到问题的答案,但我无法在互联网上找到任何内容。谁能告诉我如何写这个功能? 非常感谢你。

1 个答案:

答案 0 :(得分:-1)

这很容易。你可以递归地做到这一点:

(define (helper lst sum count)
  ...)

帮助程序使用嵌套cond的{​​{1}}:

执行此操作
  1. 作为列表为空的基本情况,它使用值ifsum来计算平均值。例如。 count

  2. 我们知道该列表至少有一个元素。检查第一个元素是否为负数。如果是,则使用(helper '() -4 2) ; ==> -2的其余部分进行递归,并使用之前lst和元素的总和,并将sum增加先前的1。例如, count

  3. 只需使用(helper '(-1) 0 0) ; ==> (helper '() -1 1) ; ==> -1的其余部分进行招募,并保留与lstsum相同的值。 count

  4. 现在,当你完成这项工作时,你可以将它包含在你的实际功能中并使用它:

    (helper '(1) -1 1) ; ==> -1

    测试

    (define (average-negative lst)
      (define (helper lst sum count)
        ...)
    
      (helper lst 0 0))
    

    勇敢的人:

    (average-negative '(-1))         ; ==> -1
    (avwerage-negative '(1 -2 3 -4)) ; ==> -3