【问题标题】:Scheme Greater than average function方案大于平均功能
【发布时间】:2018-11-27 15:05:30
【问题描述】:

我正在使用 Scheme (在 Dr. Racket 中的简单方案)中制作一个程序,该程序接受多个整数,后跟整数值。我需要能够找到我已经开始工作的列表的平均值,并且能够计算大于平均值的数字并显示有多少。

;;Function for the sum of list
(define (sum listlen) 
  (if
    (null? listlen)
    0
    (+ (car listlen) (sum (cdr listlen)))
  )
)






;;This is the part I am having trouble with
(let ((avg  (/ (apply + (cdr numbers)) (car numbers))))
  (count (lambda (x) (< x avg)) (cdr numbers)))

我查找大于平均函数的函数给了我一个数量不匹配的问题。它说 “计数:数量不匹配; 预期的参数数量与给定的数量不匹配 预期:1 给定:2 论据...:”

如果我的功能高于平均水平,我确定我做错了很简单,但对于我的生活,我无法弄清楚它是什么

【问题讨论】:

    标签: functional-programming scheme


    【解决方案1】:
    ;;Function for the sum of list
    (define (sum listlen) 
      (if
        (null? listlen)
        0
        (+ (car listlen) (sum (cdr listlen)))
      )
    )
    

    这其实就是(define (sum lst) (apply + lst))

    接下来,

    (< x avg)
    

    实际上应该是(&gt; x avg)(计算大于平均值的数字)吗?

    最后,http://docs.racket-lang.org/manual@simply-scheme/index.html 代表count

    返回单词中的字母数或句子中的单词数。

    你的意思是像(length (filter (lambda (x) (&gt; x avg)) (cdr numbers))) 这样的东西吗? (也可以使用reduce,或命名为let,或其他。)

    【讨论】:

    • 这帮了很多忙。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多