دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: DRAFT : June 15, 2012 نویسندگان: Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi, Viera K. Proulx سری: ISBN (شابک) : 0262062186 ناشر: سال نشر: 2012 تعداد صفحات: 666 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب How to Design Classes. Data: Structure and Organization به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب نحوه طراحی کلاسها. داده ها: ساختار و سازمان نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
پردازش فرمهای ساده داده - پردازش دادههای بزرگ دلخواه - بیشتر در مورد پردازش دادههای بزرگ دلخواه - طرحهای انتزاعی - بازگشت مولد - تغییر وضعیت متغیرها - تغییر مقادیر ترکیبی.
Processing simple forms of data - Processing arbitrarily large data - More on processing arbitrarily large data - Abstracting designs - Generative recursion - Changing the state of variables - Changing compound values.
Preface Why Everyone Should Learn to Program Design Recipes . . . . . . . . . . . . . . The Choice of Scheme and DrScheme The Parts of the Book Acknowledgements . I Processing Simple Forms of Data 1 Students, Teachers, and Computers 2 Numbers, Expressions, Simple Programs 2.1 Numbers and Arithmetic . 2.2 Variables and Programs 2.3 Word Problems . . . 2.4 Errors . . . . . . . . . 2.5 Designing Programs 3 Programs are Function Plus Variable Definitions 3.1 Composing Functions . . . . . . . . . . . . 3.2 Variable Definitions . . . . . . . . . . . . . . 3.3 Finger Exercises on Composing Functions . 4 Conditional Expressions and Functions 4.1 Booleans and Relations . . . . . . . . 4.2 Functions that Test Conditions . . . 4.3 Conditionals and Conditional Functions . 4.4 Designing Conditional Functions . . . . . 5 Symbolic Information 46 5.1 Finger Exercises with Symbols 49 6 Compound Data, Part 1: Structures 51 6.1 Structures . . . . . . . . . . . . . . . . . . . . 51 6.2 Extended Exercise: Drawing Simple Pictures 55 6.3 Structure Definitions . . . . . . . . . . . . 58 6.4 Data Definitions . . . . . . . . . . . . . . . . . 63 6.5 Designing Functions for Compound Data . . 65 6.6 Extended Exercise: Moving Circles and Rectangles . 72 6.7 Extended Exercise: Hangman . . . . . . . . . . . . . 76 7 The Varieties of Data 79 7.1 Mixing and Distinguishing Data 80 7.2 Designing Functions for Mixed Data 85 7.3 Composing Functions, Revisited . . 90 7.4 Extended Exercise: Moving Shapes . 93 7.5 Input Errors . . . . . . . . . . . . . . 94 Intermezzo 1: Syntax and Semantics 97 The Scheme Vocabulary 98 The SchemeGrammar . 98 The Meaning of Scheme 101 Errors . . . . . . . . . 105 Boolean Expressions 108 Variable Definitions . 109 Structure Definitions 111 II Processing Arbitrarily Large Data 9 Compound Data, Part 2: Lists 9.1 Lists . . . . . . . . . . . . .117 9.2 Data Definitions for Lists of Arbitrary Length . 122 9.3 Processing Lists of Arbitrary Length . . . . . . 125 9.4 Designing Functions for Self-Referential Data Definitions 128 9.5 More on Processing Simple Lists . . . . . . . . . . . . . . 131 10 More on Processing Lists 10.1 Functions that Produce Lists . 10.2 Lists that Contain Structures . 10.3 Extended Exercise: Moving Pictures 11 Natural Numbers 11.1 Defining Natural Numbers . . . . . . . . . . . . . . . 11.2 Processing Natural Numbers of Arbitrary Size . . . . 11.3 Extended Exercise: Creating Lists, Testing Functions . 11.4 Alternative Data Definitions for Natural Numbers 11.5 More on the Nature of Natural Numbers 12 Composing Functions, Revisited Again 12.1 Designing Complex Programs . . . . . . . . . . . 12.2 Recursive Auxiliary Functions . . . . . . . . . . . 12.3 Generalizing Problems, Generalizing Functions . 12.4 Extended Exercise: Rearranging Words . . . . . Intermezzo 2: List Abbreviations III More on Processing Arbitrarily Large Data 14 More Self-referential Data Definitions 189 14.1 Structures in Structures . . . . . . . 189 14.2 Extended Exercise: Binary Search Trees 199 14.3 Lists in Lists . . . . . . . . . . . . . . . . 204 14.4 Extended Exercise: Evaluating Scheme . 208 15 Mutually Referential Data Definitions 209 15.1 Lists of Structures, Lists in Structures . . . . . . . . . . . . . 210 15.2 Designing Functions for Mutually Referential Definitions . 217 15.3 Extended Exercise: More on Web Pages . . . . . . . . . . . 220 16 Development through Iterative Refinement 221 16.1 Data Analysis . . . . . . . . . . . . . . . 222 16.2 Defining Data Classes and Refining Them . 223 16.3 Refining Functions and Programs . . . . . . 227 17 Processing Two Complex Pieces of Data 228 17.1 Processing Two Lists Simultaneously: Case 1 229 17.2 Processing Two Lists Simultaneously: Case 2 231 17.3 Processing Two Lists Simultaneously: Case 3 235 17.4 Function Simplification . . . . . . . . . . . . . 240 17.5 Designing Functions that Consume Two Complex Inputs 242 17.6 Exercises on Processing Two Complex Inputs . 243 17.7 Extended Exercise: Evaluating Scheme, Part 2 . 247 17.8 Equality and Testing . . . . . . . . . . . . . . . 249 Intermezzo 3: Local Definitions and Lexical Scope 259 Organizing Programs with local . 259 Lexical Scope and Block Structure . . . . . . . . . . . . 276 IV Abstracting Designs 283 19 Similarities in Definitions 283 19.1 Similarities in Functions 284 19.2 Similarities in Data Definitions 293 20 Functions are Values 299 20.1 Syntax and Semantics . . . . . . . . . . . . . . . . . . 299 20.2 Contracts for Abstract and Polymorphic Functions . 301 21 Designing Abstractions from Examples 306 21.1 Abstracting from Examples . . . . . . . . . . . 306 21.2 Finger Exercises with Abstract List Functions . 312 21.3 Abstraction and a Single Point of Control . . . 315 21.4 Extended Exercise: Moving Pictures, Again . . 316 21.5 Note: Designing Abstractions from Templates 318 22 Designing Abstractions with First-Class Functions 319 22.1 Functions that Produce Functions . . . . . . . . 319 22.2 Designing Abstractions with Functions-as-Values 321 22.3 A First Look at Graphical User Interfaces . . . . . 325 23 Mathematical Examples 23.1 Sequences and Series . . . . . . . 23.2 Arithmetic Sequences and Series 23.3 Geometric Sequences and Series 23.4 The Area Under a Function 23.5 The Slope of a Function . . . . . . Intermezzo 4: Defining Functions on the Fly V Generative Recursion 25 A New Form of Recursion 25.1 Modeling a Ball on a Table . 25.2 Sorting Quickly . . . . . . . 26 Designing Algorithms 26.1 Termination . . . . . . . . . . . . . . . . 26.2 Structural versusGenerative Recursion 26.3 Making Choices . . . . . . . . . . . . . . 27 Variations on a Theme 27.1 Fractals . . . . . . 27.2 From Files to Lines, from Lists to Lists of Lists 27.3 Binary Search . . . . . . . . . . . . . . . . 27.4 Newton\'s Method . . . . . . . . . . . . . . 27.5 Extended Exercise: Gaussian Elimination 28 Algorithms that Backtrack 28.1 Traversing Graphs . . . . . . . . . . . . . . 28.2 Extended Exercise: Checking (on) Queens . Intermezzo 5: The Cost of Computing and Vectors Concrete Time, Abstract Time . . . . The Definition of \"on the Order of\" . A First Look at Vectors . . . . . . . . VI Accumulating Knowledge 30 The Loss of Knowledge 30.1 A Problem with Structural Processing 30.2 A Problem withGenerative Recursion 31 Designing Accumulator-Style Functions 31.1 Recognizing the Need for an Accumulator 31.2 Accumulator-Style Functions . . . . . . . . 31.3 Transforming Functions into Accumulator-Style 32 More Uses of Accumulation 32.1 Extended Exercise: Accumulators on Trees 32.2 Extended Exercise: Missionaries and Cannibals . 32.3 Extended Exercise: Board Solitaire . . . . . . . . Intermezzo 6: The Nature of Inexact Numbers Fixed-size Number Arithmetic Overflow . . . . . . . . Underflow . . . . . . . DrScheme\'s Numbers . VII Changing the State of Variables 34 Memory for Functions 35 Assignment to Variables 35.1 Simple Assignments at Work 35.2 Sequencing Expression Evaluations . 35.3 Assignments and Functions 35.4 A First Useful Example . . . . . 36 Designing Functions with Memory 36.1 The Need for Memory . . . . . 36.2 Memory and State Variables . . 36.3 Functions that Initialize Memory 36.4 Functions that Change Memory . 37 Examples of Memory Usage 37.1 Initializing State . . . . . . . . . . . . . 37.2 State Changes from User Interactions . 37.3 State Changes from Recursion . . . . 37.4 Finger Exercises on State Changes . 37.5 Extended Exercise: Exploring Places Intermezzo 7: The Final Syntax and Semantics The Vocabulary of Advanced Scheme The Grammar of Advanced Scheme The Meaning of Advanced Scheme Errors in Advanced Scheme . . . . . VIII Changing Compound Values 39 Encapsulation 39.1 Abstracting with State Variables . 39.2 Practice with Encapsulation 40 Mutable Structures 40.1 Structures from Functions 40.2 Mutable Functional Structures . 40.3 Mutable Structures . . . . . . . 40.4 Mutable Vectors . . . . . . . . . 40.5 Changing Variables, Changing Structures 41 Designing Functions that Change Structures 41.1 Why Mutate Structures . . . . . . . . . . . 41.2 Structural Design Recipes and Mutation, Part 1 . 41.3 Structural Design Recipes and Mutation, Part 2 . 41.4 Extended Exercise: Moving Pictures, a Last Time . 42 Equality 42.1 Extensional Equality 42.2 Intensional Equality . 43 Changing Structures, Vectors, and Objects 43.1 More Practice with Vectors . . . . . . . 43.2 Collections of Structures with Cycles . 43.3 Backtracking with State . . . . . . . . Epilogue Computing . Programming Moving On . . Index . . . 683