Fungsi harus mengambil daftar bilangan bulat dan mengembalikan daftar yang berisi dua subdaftar -- yang pertama berisi bilangan genap dari daftar asli, yang kedua berisi bilangan ganjil. Kode saya menyelesaikan pekerjaannya, tetapi jika saya mengujinya dengan bilangan bulat negatif, seperti -5 pada pengujian kedua, kode saya mengabaikannya. ada ide bagaimana cara memperbaikinya?
(Catatan tambahan - Saya tahu ada fungsi untuk genap, ganjil, dll, tetapi untuk tugas ini saya harus membuatnya sendiri.)
(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 '())
"---------------------------------------------"
partition
? - person Alex Knauth   schedule 03.10.2017