我有点困惑如何在方案中构造一个 for 循环。for 循环应该在第二部分中实现。它需要一个数字列表并将每个元素插入到第一部分的列表中以查找长度。我用电缆来获取第一个元素,但我需要一个 for 循环或其他什么来获得这样的输出:'(7 10 5 16 106 37) 这是我的代码:
#lang racket
; Part I
(define (sequence n)
(cond [(= n 1)
(list n)]
[(even? n)
( cons n(sequence( / n 2)))]
[(odd? n)
( cons n(sequence (+(* n 3) 1))) ] ))
(sequence 3)
; Part II
(define (find-length items)
( cond [(null? items)
(list items)]
[find-length(length(sequence(car items))) ]
))
(find-length '(10 13 16 22 95 158))
这是输出:
'(3 10 5 16 8 4 2 1)
7