2017-10-26 8 views
-2

문제는 p1, p2, p3, p4라고하는 폴리곤 모서리에 대한 좌표로 가득 찬 목록이 있다는 것입니다. 이 (p1, p2) (p2, p3) (p3, p4) (p4, p1)과 같은 새 목록에 재귀 적으로 추가해야합니다. 그리고이 목록을 시작할 수 있습니다 (p1 p2 p3 p4)목록에 재귀 적으로 추가하기

+0

시도해 보셨습니까? 작동하지 않는 코드 포함 (어쩌면 실제로 코드 작업을 수행 할 수 있습니다. :)) –

답변

0

저는 Racket의 전문가가 아니므로이 솔루션을 소금 입자로 사용하십시오. 목록의 첫 번째 값을 끝에 추가하여 반복적으로 쌍을 계산할 수 있습니다.

#lang racket 

(define (pair-list l) 
    (match l 
    [(cons a (cons b '())) (cons (cons a b) '())] 
    [(cons a (cons b t)) (cons (cons a b) (pair-list (cons b t)))])) 

(define (compute-values l) 
    (pair-list (append l (cons (first l) '())))) 

(compute-values (list 1 2 3 4)) 
'((1 . 2) (2 . 3) (3 . 4) (4 . 1))