0
所以我很新的计划,在它的第一天编程。我试图做一个基本上需要两个论证的递归函数numlist, num
numlist是一个数字列表,num是一个单一的数字。该函数获取列表,遍历每个元素并将其与num进行比较,如果该数字大于num,则将其替换为列表中的1,否则将其替换为0.我的递归函数没有返回任何东西,为什么?
例如:arguments(( 1,2,3,4,5,6,7,8,9,10),5)将列表变换为(0,0,0,0,0,1,1,1,1,1)
但由于某种原因,我的功能没有返回任何东西,它不会在我的屏幕上打印任何内容,为什么?
(define (greater-nums-in-list numlist num)
(cond
[(null? numlist)()]
[(> (car numlist) num) (append 1 (greater-nums-in-list((cdr numlist) num))]
[else (append 0 (greater-nums-in-list((cdr numlist) num)))]
)
)
任何帮助将不胜感激,这只是个人学习代码,所以我不急于。
好它确实起作用,我唯一的疑问就是用其他语言它会返回正常,因为发生的事情是它会得到所有的0和1,然后在递归结束时追加它们,所以如果你有(1, 2,3)和1它会去0追加(2,3) - > 0追加1追加(3) - > 0追加1追加1追加() - >(0,1,1) 你知道吗?就像在F#中一样,这可以很好地工作,但无论如何。你的解决方案效果很好,我真的不明白为什么我的不是 –
@ManPerson更新后的解决方案是修复你的代码,请检查它。我在我早些时候的评论中被误认为... – alfasin
啊,现在我明白了,谢谢! –