方案列表操作错误

时间:2017-10-27 15:51:56

标签: scheme racket

(define (create-polygon ptlist)
  (if (null? ptlist) '()
      (cons (cons (car ptlist) (cadr ptlist)) (create-polygon (cdr ptlist)))))

(define (newlist ptlist)
  (append ptlist (car ptlist)))

(define test-points                   
  (list p1 p2 p3 p4 p5 p6))   

(create-polygon test-points)

我正在尝试制作多边形边缘坐标的列表。 p1,p2是一些像(0 0)的点。 最终结果应为((p1 p2)(p2 p3)(p3 p4)(p4 p5)(p5 p6)(p6 p1))。 我浪费了很多时间来试图弄清楚是什么给了我一个错误。为什么它会出错。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

这是我午休时的一些有趣的手指练习。

draw

我的override init() { super.init() backgroundColor = .red tintColor = .blue } 函数执行我认为您尝试使用Petite Chez Scheme Version 8.4 Copyright (c) 1985-2011 Cadence Research Systems > (define test-points '(p1 p2 p3 p4 p5 p6)) > (define (rotate xs) (append (cdr xs) (list (car xs)))) > (define (create-polygon ptlist) (map list ptlist (rotate ptlist))) > (create-polygon test-points) ((p1 p2) (p2 p3) (p3 p4) (p4 p5) (p5 p6) (p6 p1)) 函数执行的操作。在rotate中,我使用newlist高阶函数来执行递归操作。