形成は、だから私はDrRacketを使用して、以下のように定義構造体を持っています
(define v (make-thing
(make-thing (make-thing 1 2)
(make-thing 3 4))
(make-thing (make-thing 5 6)
(make-thing 7 8))))
2の累乗で1,2,4,8,16 ...のような正の数でない関数を作り、数値1を出力するか(n = 1の場合) )か、上記のような形式で「もの」を作ります。
は、これまでのところ、私は多くの方法を試してみましたが、私はどちらかのようなものを取得し終わる:私が正しく変数をインクリメントする方法を見つけ出すことはできません
(make-thing (make-thing (make-thing 1 1)
(make-thing 1 1))
(make-thing (make-thing 1 1)
(make-thing 1 1))))
- 私はどのように把握することができました
ここで今私が使用するコードです:
(define (helper pow current)
(cond
((= pow 0) 1)
(else (make-thing
(helper (- pow 1) current)
(helper (- pow 1) (- current 1))))))
(define current 1)
(define (build-thing-or-number n)
(cond
((= n 1) 1)
(else (make-thing
(helper (- (log n 2) 1) current)
(helper (- (log n 2) 1) (add1 current))))))
説明をありがとう!これはうまく働いた – abcd