Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Structures in Scheme Building data structures: Java class Circle { private double center_x, center_y, radius; Circle(double x, double y, double r)

Similar presentations


Presentation on theme: "Data Structures in Scheme Building data structures: Java class Circle { private double center_x, center_y, radius; Circle(double x, double y, double r)"— Presentation transcript:

1 Data Structures in Scheme Building data structures: Java class Circle { private double center_x, center_y, radius; Circle(double x, double y, double r) { this.center_x = x; this.center_y = y; this.radius = r; } }; (define make-circle (lambda (center-x center-y radius) (list center-x center-y radius)))

2 Data Structures in Scheme Building data structures: Scheme - use list in a constructor function: (define make-circle (lambda (center-x center-y radius) (list center-x center-y radius)))

3 Data Structures in Scheme Accessing fields: use list-ref in a selector function: double getRadius () {// Java return radius; } (define get-radius; Scheme (lambda (circle) (list-ref circle 2)))

4 Local declaration/scope via let double area() { double pi = 3.14159, r = radius; return (pi * r * r); } (define area (lambda (circle) (let ((pi 3.14159) (r (get-radius circle))) (* pi r r))))

5 Local declaration/scope via let (let ( (var1 val1) (var2 val2).. (varN valN) ) result )

6 Shortcut with letrec > (letrec ((a 3) (b (* 2 a)) (c (+ b 1))) c) 7  > (let ((a 3)) ; long version  (let ((b (* 2 a)))  (let ((c (+ b 1)))  c))) 7

7 Sequential execution via begin (define prompt-for-command-char (lambda (prompt) (begin (write prompt) (read)))


Download ppt "Data Structures in Scheme Building data structures: Java class Circle { private double center_x, center_y, radius; Circle(double x, double y, double r)"

Similar presentations


Ads by Google