List Racket/Scheme中的抽象列表函数

List Racket/Scheme中的抽象列表函数,list,function,scheme,racket,List,Function,Scheme,Racket,我完全陷入了编写一个不使用递归、局部变量或lambda的函数的问题。只能使用抽象列表函数。函数必须输入一个正整数列表,并输出严格大于1的整数数量。即,所有整数列表的长度>1 有什么办法吗?我从未单独实现过抽象列表函数,我不确定在这种情况下会使用哪些函数 此外,语言设置为中级学生,不高于中级学生。这就是为什么不能使用lambda和其他函数的原因。鉴于语言限制,我们可以使用: 如果不是因为限制,球拍有一个更简单的方法: (count (lambda (x) (> x 1)) lst) =>

我完全陷入了编写一个不使用递归、局部变量或lambda的函数的问题。只能使用抽象列表函数。函数必须输入一个正整数列表,并输出严格大于1的整数数量。即,所有整数列表的长度>1

有什么办法吗?我从未单独实现过抽象列表函数,我不确定在这种情况下会使用哪些函数


此外,语言设置为中级学生,不高于中级学生。这就是为什么不能使用lambda和其他函数的原因。

鉴于语言限制,我们可以使用:

如果不是因为限制,球拍有一个更简单的方法:

(count (lambda (x) (> x 1)) lst)
=> 4

在这种情况下,正在使用的抽象列表函数是,有关更多可用函数,请参阅文档。

这是否符合您的限制?从每个数字中减去一,过滤正数,并获取结果列表的长度:

(define (f lst)
  (length (filter positive? (map sub1 lst))))

> (f '(1 2 3 4 5 0 -1 -2 -3 -4))
4

中级学生可以使用。

不确定这是否适用于所选语言,对吗?@leppie你说得对,我忘了那部分。现在修好了:)是的,那正是我要找的!非常感谢你。这是一个非常好的方法
(define (f lst)
  (length (filter positive? (map sub1 lst))))

> (f '(1 2 3 4 5 0 -1 -2 -3 -4))
4