By Jon Pearce

By now, Scheme is a well-established programming language and is discovering expanding attractiveness in programming classes for undergraduates. Its expressive features are matched by means of a simplicity of language and ease-of-use that have made its adherents disciples! This textbook offers a complete first path in Scheme and covers all of its significant beneficial properties: abstraction, useful programming, information forms, recursion, and semantic programming. even though the first aim of this article is to coach scholars to application in Scheme, will probably be compatible for any scholar learning a basic programming rules direction. each one bankruptcy is split into 3 sections: center, appendix , and difficulties. so much crucial themes are coated within the middle part, however it is thought that almost all scholars will learn the appendices and resolve lots of the difficulties. (Nearly the entire difficulties require scholars to jot down brief Scheme procedures.) in addition to supplying a radical grounding in Scheme, the writer discusses intensive diverse programming paradigms. a massive subject matter all through is that of "meta-programming": the point of view that courses themselves may be handled as information, and consequently might be analyzed and converted as items. this gives perception into themes equivalent to type-checking and overloading which would rather be missed.

Show description

Read or Download Programming and Meta-Programming in Scheme PDF

Similar compilers books

Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity

Joel Spolsky started his mythical net log, www. joelonsoftware. com, in March 2000, which will supply insights for making improvements to the realm of programming. Spolsky dependent those observations on years of private event. the outcome only a handful of years later? Spolsky's technical wisdom, caustic wit, and impressive writing abilities have earned him prestige as a programming guru!

From Linear Operators to Computational Biology Essays in Memory of Jacob T. Schwartz

Foreword. - creation. - Nature as Quantum desktop. - Jack Schwartz Meets Karl Marx. - SETL and the Evolution of Programming. - choice approach for straight forward Sublanguages of Set idea XVII: in general happening Decidable Extensions of Multi-level Syllogistic. - Jack Schwartz and Robotics: The Roaring Eighties.

Principles of Compilers: A New Approach to Compilers Including the Algebraic Method

"Principles of Compilers: a brand new method of Compilers together with the Algebraic strategy" introduces the information of the compilation from the common intelligence of humans through evaluating similarities and variations among the compilations of traditional languages and programming languages. The notation is created to record the resource language, aim languages, and compiler language, vividly illustrating the multilevel method of the compilation within the technique.

Formal Techniques for Safety-Critical Systems: Third International Workshop, FTSCS 2014, Luxembourg, November 6-7, 2014. Revised Selected Papers

This publication constitutes the refereed court cases of the 3rd foreign Workshop on Formal recommendations for Safety-Critical structures, FTSCS 2014, held in Luxembourg, in November 2014. The 14 revised complete papers provided including invited talks have been rigorously reviewed and chosen from forty submissions.

Extra info for Programming and Meta-Programming in Scheme

Example text

F e. #f h. i. j. f. #0 '0 k. 2) 1. 2) 0 In. 2) (1 . 2) "(1 . 2)" n. 2) o. + 6 We can also express' (+ a ,b c) as (quasiquote (+ a ( unquote b) c». p. '+ q. 0 r. 0 s. 111 t . 2+0i 28 1. 5. Write Scheme expressions equivalent to the following mathematical expressions. You may use any ANSI Scheme procedures or constants. You may also use the "and" and "or" structures. Hint: Use Scheme's define procedure to give arbitrary definitions to x, y, z. a, and h. Once these symbols have values. you should be able to check your Scheme translations of the following expressions using your Scheme interpreter.

5 * 81 + 2 * 8° + 1 * 8- 1 + 1 * 8- 2 + 1 * 8- 3 + ... Programmers. 249249 ... 2 * 16 1 + 10 * 16° + 2 * 16- 1 + 4 * 16- 2 + ... Appendices 25 Computers store, process, and communicate data as voltage levels. To avoid ambiguity only two levels are distinguished: high and low. 001001001 ... = 1 * 2 5 + 0 * 24 + 1 * 2 3 + 0 + 1 * 21 + 0 * 2° + 0 * 2- 1 + 0 * 2- 2 + 1 * 2- 3 + ... x * 22 The radix of a representation scheme is the number of allowable digits. The hexadecimal radix is 16, the octal radix is eight, the decimal radix is ten, and the binary radix is two.

It, if string is a palindrome (define (palindrome? string) (string-ci=? string (string-reverse string») i Scheme does provide a procedure for reversing lists: (reverse vals) = list formed by reversing vals For example: > (reverse' (a e i (U 0 i 0 u» e a) Unfortunately, Scheme does not provide procedures for reversing strings and vectors, but these are easily defined using our coercions. 3. The Abstraction Principle Structure is organization in space, while function is organization in time. -C.

Download PDF sample

Programming and Meta-Programming in Scheme by Jon Pearce
Rated 4.83 of 5 – based on 33 votes