-2
你会如何编写一个代码,只使用过滤器和整数从列表中删除完美的正方形?我相信这是建立在计划中的。例如。 (1 2 9 16 5 64)应该返回(2 5),因为该列表中其他所有内容的平方根都会返回一个整数。谢谢!拿出完美的正方形
你会如何编写一个代码,只使用过滤器和整数从列表中删除完美的正方形?我相信这是建立在计划中的。例如。 (1 2 9 16 5 64)应该返回(2 5),因为该列表中其他所有内容的平方根都会返回一个整数。谢谢!拿出完美的正方形
(define (take-out-perfect-squares l)
(cond ((null? l) '())
((integer? (sqrt (car l)))
(take-out-perfect-squares (cdr l)))
(else
(cons (car l) (take-out-perfect-squares (cdr l))))))
(define remove-perfect-square-helper
(lambda (x y)
(if (null? x)
(reverse y)
(if (integer? (sqrt (car x)))
(remove-perfect-square-helper (cdr x) y)
(remove-perfect-square-helper (cdr x) (cons (car x) y))))))
(define remove-perfect-square
(lambda (x)
(remove-perfect-square-helper x '())))
(define x '(1 2 9 16 5 64))
(remove-perfect-square x)