는 목록의 데이터 타입이 무엇인지 기억하십시오.
;; A IntegerList is one of:
;; - '()
;; - (cons Integer IntegerList)
이 템플릿이 구조를 반영해야 감안할 때 : 귀하의 클래스는 아마 뭔가를하고있다. 우리가 하나 개의 정수 목록으로 정수의 목록을 설정하려는 나는 (기본 사건을 해결합니다
먼저 내가 같은 1List
데이터 타입 정의됩니다.
;; a 1List is:
;; - (cons Integer '())
다음, 목적 문 및 서명을 기능은 다음과 같습니다.
;; Takes a list of integers and returns a list of 1Lists of the same integers
;; IntegerList -> 1List
(define (make-1list lst)
...)
좋아 멋진 지금 우리에게 필요한 테스트 케이스 :
(check-expect (make-1list (list 1 2 3)) (list (list 1) (list 2) (list 3)))
(check-expect (make-1list (list)) (list))
(check-expect (make-1list (list 42)) (list (list 42)))
,
마지막으로, 나는 내 템플릿을 만들 수 있습니다
(define (make-1list lst)
(cond [(null? lst) ...]
[else ... (first lst) ... (rest lst) ...]))
이 (. 가끔 당신이 필요로하는 테스트 무엇을 안내하기 위해 먼저 템플릿의 일부를 만들 의미가 있습니다)
을 마지막으로, 우리는 할 수 있습니다 우리의 코드를 기입하십시오 :
(define (make-1list lst)
(cond [(null? lst) '()]
[else (cons (list (first lst)) (make-1list (rest lst)))]))
마지막으로 예제 또한 테스트이므로 모든 것이 제대로 작동하는지 테스트해야합니다.
이제 1List
대신 3List
을 만들고 싶으므로이 방법을 따라 문제를 해결할 수있는 방법을 알고 계십니까?
- 데이터 정의를 적어 둡니다.
- 목적 진술과 서명을하십시오.
- 예를 들자.
- 템플릿을 만듭니다.
- 실제 기능을 작성하십시오.
- 기존 예제를 테스트 해보십시오.
이 패턴을 따르면 문제를 더 작은 단계로 나눌 수 있습니다. 행운을 빕니다.