Racket 删除列表中小于10的数字的函数
我需要创建一个函数,它接受一个数字列表,删除所有小于10的数字,并输出一个新列表 到目前为止,我有:Racket 删除列表中小于10的数字的函数,racket,Racket,我需要创建一个函数,它接受一个数字列表,删除所有小于10的数字,并输出一个新列表 到目前为止,我有: #lang racket (define less-than10(lambda (x) (for/list ([i x] #:when (lambda (x) (< x 10))) i))) (less-than10 '(1 2 3 4 11)) 但是,它仍然不会删除小于10的数字。它只输出完全相同的列表。有什么帮助吗?您需要将谓词应用于绑定循环变量i,还要注意,我已经翻转了
#lang racket
(define less-than10(lambda (x)
(for/list ([i x] #:when (lambda (x) (< x 10))) i)))
(less-than10 '(1 2 3 4 11))
但是,它仍然不会删除小于10的数字。它只输出完全相同的列表。有什么帮助吗?您需要将谓词应用于绑定循环变量i,还要注意,我已经翻转了谓词:
#lang racket
(define less-than10
(lambda (x)
(for/list ([i x] #:when ((lambda (x) (> x 10)) i)) i)))
(less-than10 '(1 2 3 4 11))
; => '(11)
更自然的版本将使用过滤器:
(define less-than10.v2
(lambda (x)
(filter (lambda (x) (> x 10)) x)))
(less-than10.v2 '(1 2 3 4 11))
; => '(11)