我在编写使用for循环遍历数字列表并返回所有小于10的数字的函数时需要帮助,我不知道如果有人可以帮助我甚至从一个起点开始,我也不知道从哪里开始。欣赏它。
谢谢:)
做这种事情的“标准”方法是用filter
procedure。它使用predicate(指示条件是否为真的过程)和列表,并生成一个新列表,其中包含输入列表中满足谓词的那些元素。例如,我们可以生成一个仅包含数字输入列表中的偶数的列表,如下所示:
filter
在您的情况下,没有用于测试数字是否小于10的“内置”谓词,但是我们可以轻松定义一个:
(filter even? '(0 1 2 3 4 5 6))
;; => (0 2 4 6)
然后使用它过滤任何列表:
(define (<10 n)
(< n 10))
尽管在这种情况下,我认为大多数人都希望改用(filter <10 '(1 4 15 23 25 4 8))
;; => (1 4 4 8)
:
lambda
希望这会有所帮助!