List 带列表的基本函数
我们有一个List 带列表的基本函数,list,functional-programming,scheme,List,Functional Programming,Scheme,我们有一个列表a(12345627)我们想得到这个数字,这个数字是多少次会面,然后是多少次会面 numbers | meets 1 = 1 2 < 3 3 < 4 5 > 1 4 > 2 6 > 1 7 > 1 Example: Input: list (1 1 2 3 2 3 4 4 5 5 5 5 5 5) Output: (1 3 4) number |满足 1 =
列表a(12345627)
我们想得到这个数字,这个数字是多少次会面,然后是多少次会面
numbers | meets
1 = 1
2 < 3
3 < 4
5 > 1
4 > 2
6 > 1
7 > 1
Example:
Input:
list (1 1 2 3 2 3 4 4 5 5 5 5 5 5)
Output:
(1 3 4)
number |满足
1 = 1
2 < 3
3 < 4
5 > 1
4 > 2
6 > 1
7 > 1
例子:
输入:
名单(1 1 2 3 2 3 4 5 5 5 5)
输出:
(1 3 4)
在我的解决方案中,我遵循了@lbruder注释,但我不清楚为什么1会出现在输出中,因为如果您检查的是更小和相等的值,那么2也应该出现
> (define (occurences lst)
(cond ((null? lst) empty)
((< (length (filter (lambda (x) (if (= x (car lst)) x #f)) lst)) (car lst)) (cons (car lst) (occurences (filter (lambda (x) (if (not (= x (car lst))) x #f)) lst))))
(else (occurences (filter (lambda (x) (if (not (= x (car lst))) x #f)) lst)))))
> (occurences '(1 2 3 2 3 4 4 5 5 5 5 5 5))
(3 4)
>(定义(发生lst)
(cond((null?lst)为空)
(<(长度(筛选器(lambda(x)(如果(=x(car lst))x#f))lst))(car lst))(cons(car lst)(发生(筛选器(lambda(x)(如果(=x(car lst))x#f))lst)))
(其他(发生(过滤器(λ(x)(如果(不是(=x(汽车lst)))x#f))lst(())))
>(事件’(123434555))
(3 4)
- 数字1出现1->false 1!<一,
- 数字2出现2->false 2!<二,
- 第3次出现2->true 2<3
- 第4次出现2->true 2<4
- 数字5出现6->false 6!<五,
(34)
通过
!是作业吗?请添加作业标签。对不起,我不明白这个问题:(不,我必须在1小时后的测试中解决一个类似的问题…列表(1 2 1 1 2 4 4 5)1满足4次2满足3次4满足3次5满足1次所以列表是12次=数字1包含在列表A中的次数,与2、4、5相同您的意思是列表项的出现次数应该小于数字项本身?没错!我更正了!