gpt4 book ai didi

lisp - Racket - 将偶数和奇数整数过滤到两个单独的列表中

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:24 24 4
gpt4 key购买 nike

函数应该接受一个整数列表并返回一个包含两个子列表的列表——第一个包含原始列表中的偶数,第二个包含奇数。我的代码完成了工作,但如果我用负整数测试它,例如第二个测试中的 -5,它就会被我的代码忽略。关于如何修复的任何想法?

(旁注 - 我知道有偶数、奇数等函数,但对于这个作业,我要自己创建它们。)

(define (segregate lst)
(list(pullEven lst)(pullOdd lst)))

(define (pullEven lst)
(if (empty? lst)
'()
(if (isEven (first lst))
(cons (first lst) (pullEven (rest lst)))
(pullEven (rest lst)))))

(define (pullOdd lst)
(if (empty? lst)
'()
(if (isOdd (first lst))
(cons (first lst) (pullOdd (rest lst)))
(pullOdd (rest lst)))))

(define (isEven x)
(if (equal? (remainder x 2) 0) #t #f)
)
(define (isOdd x)
(if (equal? (remainder x 2) 1) #t #f)
)

;tests
"---------------------------------------------"
"Segregate Tests"
(segregate '(7 2 3 5 8))
(segregate '(3 -5 8 16 99))
(segregate '())
"---------------------------------------------"

最佳答案

尝试替换为 modulo而不是 remainder

余数将保留答案的符号(-1 的余数与您要检查的 1 的值不匹配)。

模返回一个与分母符号相同的答案。

关于lisp - Racket - 将偶数和奇数整数过滤到两个单独的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46535514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com