LAB6 - CPSC 110 PDF

Title LAB6 - CPSC 110
Course Computation Programs And Programming
Institution The University of British Columbia
Pages 4
File Size 40.4 KB
File Type PDF
Total Downloads 77
Total Views 159

Summary

CPSC 110...


Description

;; CONSTANTS =============== (define TEXT-SIZE 32) (define TEXT-COLOUR "white") ;; DATA DEFINITIONS =============== ;; Data definition for sentence tree (@problem 1) (@htdd SentenceTree) (define-struct stree (prefix subs)) ;; SentenceTree is (make-stree String ListOfSentenceTree) ;; interp. stree is the sentence tree with sentence being the ;; sentence root and tree being ListOfSentenceTree (@htdd ListOfSentenceTree) ;; ListOfSentenceTree is one of: ;; - empty ;; - (cons stree ListOfSentenceTree) ;; interp. ListOfSentenceTree is the list of SentenceTrees (define (fn-for-st st) (... (stree-prefix st) (fn-for-lost (stree-subs st))))

(define (fn-for-lost lost) (cond [(empty? lost) (...)] [else (... (fn-for-st (first lost)) (fn-for-lost (rest lost)))])) ;; Sentence Trees (define ST10 (make-stree "MY FAVOURITE SONG ON REPEAT" empty)) (define ST9 (make-stree "FREEZE TIME" empty)) (define ST8 (make-stree "TO" (list ST9 ST10))) (define ST7 (make-stree "PERCHED ON THE TIP OF A SINKING SHIP" empty)) (define ST6 (make-stree "IN A BACK TO SCHOOL SPECIAL ABOUT MONO" empty)) (define ST5 (make-stree "WE ARE" (list ST6 ST7))) (define ST4 (make-stree "YOU REALLY MEAN IT" empty)) (define ST3 (make-stree "LIKE" (list ST4 ST5))) (define ST2 (make-stree "JOKING ABOUT JEALOUSY" empty)) (define ST1 (make-stree "KISS ME" (list ST2 ST3 ST8))) (define ST0 (make-stree "" empty))

;; List of Sentence Trees (define LOST0 (list ST0)) (define LOST1 (list ST2 ST3 ST8)) (define LOST2 (list ST2 ST3))

;; FUNCTIONS ====================== (@problem 2) (@htdf sentence--count sentence--list--count) (@signature SentenceTree -> Natural) (@signature ListOfSentenceTree -> Natural) ;; produces the number of sentences in the sentence tree (check-expect (sentence--count ST0) 0) (check-expect (sentence--count ST2) 1) (check-expect (sentence--count ST8) 2) (check-expect (sentence--count ST1) 6) (check-expect (sentence--list--count LOST0) 0) (check-expect (sentence--list--count LOST1) 6) ;(define (sentence--count st) 0)

;stub

(@template SentenceTree) (define (sentence--count st) (if (string=? (stree-prefix st) "") 0 (sentence--list--count (stree-subs st)))) ;(define (sentence--list--count lost) 0)

;stub

(@template ListOfSentenceTree) (define (sentence--list--count lost) (cond [(empty? lost) 1] [else (+ (sentence--count (first lost)) (if (empty? (rest lost)) 0 (sentence--list--count (rest lost))))]))

(@problem 3) (@htdf render--stree render--lost) (@signature SentenceTree -> Image) (@signature ListOfSentenceTree -> Image) ;; produces image of sentences in the sentence tree (check-expect (render--stree ST0) (text (stree-prefix ST0) TEXT-SIZE TEXT-COLOUR)) (check-expect (render--stree ST9) (text (stree-prefix ST9) TEXT-SIZE TEXT-COLOUR)) (check-expect (render--stree ST3) (beside (text (stree-prefix ST3) TEXT-SIZE TEXT-COLOUR) (above/align "left" (text (stree-prefix ST4) TEXT-SIZE TEXT-COLOUR) (beside (text (stree-prefix ST5) TEXT-SIZE TEXT-COLOUR) (above/align "left" (text (stree-prefix ST6) TEXT-SIZE TEXT-COLOUR) (text (stree-prefix ST7) TEXT-SIZE TEXT-COLOUR)))))) (check-expect (render--lost LOST0) (text (stree-prefix ST0) TEXT-SIZE TEXT-COLOUR)) (check-expect (render--lost LOST2) (above/align "left" (render--stree ST2) (render--stree ST3)))

;(define (render--stree st) empty-image)

;stub

(@template SentenceTree) (define (render--stree st) (beside (text (stree-prefix st) TEXT-SIZE TEXT-COLOUR) (render--lost (stree-subs st)))) ;(define (render--lost lost) empty-image) (@template ListOfSentenceTree) (define (render--lost lost) (cond [(empty? lost) empty-image]

;stub

[else (above/align "left" (render--stree (first lost)) (render--lost (rest lost)))]))...


Similar Free PDFs