UA CSC 520 - Scheme (9 pages)

Previewing pages 1, 2, 3 of 9 page document View the full content.
View Full Document

Scheme



Previewing pages 1, 2, 3 of actual document.

View the full content.
View Full Document
View Full Document

Scheme

72 views


Pages:
9
School:
University of Arizona
Course:
Csc 520 - Principles of Programming Languages
Principles of Programming Languages Documents
Unformatted text preview:

CSc 520 Principles of Programming Languages 3 Scheme Introduction Christian Collberg Department of Computer Science University of Arizona collberg cs arizona edu Copyright c 2005 Christian Collberg April 22 2005 1 Background Scheme is based on LISP which was developed by John McCarthy in the mid 50s LISP stands for LISt Processing not Lots of Irritating Silly Parentheses Functions and data share the same representation S Expressions A basic LISP implementation needs six functions cons car cdr equal atom cond Scheme was developed by Sussman and Steele in 1975 2 S Expressions An S Expression is a balanced list of parentheses More formally an S expression is 1 a literal i e number boolean symbol character string or empty list 2 a list of s expressions Literals are sometimes called atoms 3 S Expressions Examples Legal 66 4 5 5 4 5 6 7 Illegal 5 4 5 1 4 S Expressions as Trees An S expression can be seen as a linear representation of tree structure 2 2 6 3 4 3 6 4 2 3 4 5 6 7 2 4 3 7 5 6 5 S Expressions as Function Calls A special case of an S expression is when the first element of a list is a function name Such an expression can be evaluated 4 5 9 add five to my argument 20 25 draw a circle 20 45 t 6 S Expressions as Functions As we will see function definitions are also S expressions define farenheit 2 celsius f f 32 5 9 So Scheme really only has one syntactic structure the S expression and that is used as a data structure to represent lists trees etc as function definitions and as function calls 7 Function Application In general a function application is written like this operator arg1 arg2 argn The evaluation proceeds as follows 2 1 Evaluate operator The result should be a function F 2 Evaluate arg1 arg2 argn to get val1 val2 valn 3 Apply F to val1 val2 valn 8 Function Application Examples 4 5 9 5 6 3 14 7 7 4 5 6 eval 4 is not a function t t 9 Atoms Numbers Scheme has Fractions 5 9 Integers 5435 Complex numbers 5 2i Inexact reals i3 14159265 5 4 9 5 4 3 23 5 9 4 6 1 2 5 9 0 5 3 10 Atoms Numbers 5 9 8 18 1 5 2i 5 2i 5 2i 3 i 8 1i 236542164521634 3746573426573425643 886222587860913289285513763860662 pi i3 141592653589793 e i2 718281828459045 2 pi i6 283185307179586 11 Atoms Numbers Scheme tries to do arithmetic exactly as much as possible Any computations that depend on an inexact value becomes inexact Scheme has many builtin mathematical functions sqrt 16 4 sqrt 2 i1 4142135623730951 sin 45 i0 8509035245341184 sin pi 2 i1 0 12 Atoms Strings A string is enclosed in double quotes display hello hello hello hello string length hello 5 string append hello world hello world 13 Atoms Booleans true is written t false is written f 4 t true f false display t t not t false 14 Identifiers Unlike languages like C and Java Scheme allows identifiers to contain special characters such as Identifiers should not begin with a character that can begin a number This is a consequence of Scheme s simple syntax You couldn t do this in Java because then there would be many ways to interpret the expression X 5 Y Legal h e l l o give me WTF 15 Illegal 3some stance Defining Variables define binds an expression to a global name define name expression define PI 3 14 PI 3 14 define High School PI 22 7 High School PI 3 142857 16 Defining Functions define binds an expression to a global name define name arg1 arg2 arg1 arg2 are formal function parameters 5 expression define f hello f hello define square x x x square 3 9 17 Defining Helper Functions A Scheme program consists of a large number of functions A function typically is defined by calling other functions so called helper or auxiliary functions define square x x x define cube x x square x cube 3 27 18 Preventing Evaluation Sometimes you don t want an expression to be evaluated For example you may want to think of 4 5 as a list of three elements 4 and 5 rather than as the computed value 9 quote 4 5 prevents 4 5 from being evaluated You can also write 4 5 display 4 5 9 display quote 4 5 4 5 display 4 5 4 5 19 Dr Scheme Download DrScheme from here http www drscheme org It has already been installed for you in lectura and the Windows machines in the lab Start DrScheme under unix on lectura by saying drscheme On Windows and MacOS it may be enough to click on the DrScheme logo to start it up 6 20 Dr Scheme Save definitions Definitions window Select language level Language level Add teachpacks Interaction window 21 Dr Scheme Using TeachPacks 7 22 Dr Scheme Using the Stepper 23 References Free interpreter http www drscheme org Manual http www swiss ai mit edu projects scheme documentation scheme html Tutorials http ai uwaterloo ca dale cs486 s99 scheme tutorial html http cs wwc edu 7Ecs dept KU PR Scheme html http www cis upenn edu 7Eungar CIS520 scheme tutorial html http dmoz org Computers Programming Languages Lisp Scheme 24 References Language reference manual http www swiss ai mit edu ftpdir scheme reports r5rs ps Some of this material is taken from http www ecf utoronto ca gower CSC326F slides c Diana Inkpen 2002 Suzanne Stevenson 2001 25 Scheme so Far A function is defined by define name arguments expression A variable is defined by define name expression Strings are inclosed in double quotes like this Common operations on strings are 8 string length string string append list of strings Numbers can be exact integers inexact reals fractions and complex Integers can get arbitrarily large Booleans are written t and f 26 Scheme so Far An inexact number is written i3 14159265 Common operations on numbers are arg1 arg2 arg1 arg2 add1 arg sub1 arg min arg1 arg2 max arg1 arg2 A function application is written function name arguments Quoting is used to prevent evaluation quote argument or argument 9


View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...
Login

Join to view Scheme and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Scheme and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?