Download presentation
Presentation is loading. Please wait.
Published byGwendolyn Griffin Modified over 9 years ago
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)))
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.