【发布时间】:2014-11-26 18:59:57
【问题描述】:
我在这里遇到了一个小问题。我想用球拍制作龙曲线。 首先,我想用给定的龙曲线顺序列出一个列表。
例如:订单 3 会给我列表:(list 'R 'R 'L 'R 'R 'L 'L)。 L 表示向左转 90 度,R 表示向右转 90 度。
按给定顺序生成列表的算法是:
- 第一道菜总是右转(列表 'R)
- 下一个顺序是上一个顺序加上元素(列表'R)加上上一个顺序,其中中间符号被替换为'L。
所以,第二个顺序是 (list 'R 'R 'L)
但我真的不知道,如何将这个“算法”写成(递归)代码。
;;number -> list
;; number 'n' is the order of the dragon curve.
;; (dragon-code 3) should make: (list 'R 'R 'L 'R 'R 'L 'L)
(define (dragon-code n)
(cond
[(zero? n) empty]
[else
我会感谢每一个提示! :)
【问题讨论】:
标签: recursion scheme racket curve