Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information

Total Page:16

File Type:pdf, Size:1020Kb

Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Index A bold page number indicates where a term is deined. abstract syntax tree, 105 C, 35, 45, 189 abstraction, 29, 141 C♯,35 see also model C++, 35, 190 agile, 64, 159, 198 camel case, 89 algorithm, 29, 147, 148, 196 change, 141, 144, 197 Alice, 44 checklist, 127 arguments, 25,28 cloud, 66 functions as, 45 code order of, 108 commented-out, 62 type of, 41, 108 completion, 52,90 assert, 71 dead, 64 assignment, 131 line length, 99 vs. comparison, 126 reputable body of, 46, 63, 94, 99 Atom, 18 spaghetti, 98, 122 autocompletion, 52,90 unreachable, 64 autosave, 57 code sense, 3, 133 coding, 4 backups, 65 coding dojo, 153 bar, see metasyntactic variable coding interview, 148 BASIC, 44, 125 command line, 15, 49 baz, see metasyntactic variable comment, 27, 70, 85–88 BlueJ, 44, 54 commenting-out, 62 breakpoint, 111 comparison bug, 32, 101, 190, 191 of booleans, 126 after removing, 124 of objects, 130 avoiding, 138 vs. assignment, 126 avoiding recurrence of, 77 compiler, 13, 35 in compiler, 109 bug, 109 removing, 122 incremental, 51 the Lauren bug, 78 computational complexity, 148 see also debugging content assist, 52,90 build, 51, 53 contract, 88 202 © in this web service Cambridge University Press www.cambridge.org Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Index 203 crash, 118 time, 146 currying, 23 user, 146 Emacs, 18, 49, 58, 90, 95 data science, 192 embedded systems, 190 database, 189 encapsulation, 45, 114 debugger, 111 enterprise systems, 190 debugging, 101–133 error, 104 by rewriting, 112 compared with warning, 104 cardboard, 120 compile-time, 103 crash, 118 non-termination, 118 interactive, 111 null pointer exception, 119, 130 non-termination, 118 off-by-one, 130 rubber duck, 120 using print statements, 110 run-time, 118 defensive programming, 132 type, 107 see also demonstration, 175 bug dependency, 37, 42, 51, 138, 163, 188 error indicator, 51 design, 134, 141, 144, 183, 197 error message, 103 notes, 29, 88, 152 recurrent, 160 design pattern, 197 ethics, 10 development exam, 179 iterative, 30 exception, 118 test-driven, 79, 151 exercises, 157 Dijkstra, Edsger, 82 directory, 17 failure, see bug disk, 56 fault, see bug domain concept, 144 Fizz Buzz, 19, 20, 25, 28, 138, 153 domain-speciic language, 198 folder, 17 duplication foo, 32 eliminating, 136 for loops, 127 Fortran, 190 Eclipse, 51, 53, 54, 90, 92 framework, 76, 190, 192 editor, 16, 49, 55, 90 dumb, 49, 53 logging, 111 mode, 49, 95 testing, 75 vs. word processor, 16 froboz, 32 effect, 25 function, 42 eficiency, 134, 145 pure, 25 maintainer, 146 Pareto, 146 Git, 60 programmer, 146 GitHub, 53, 61, 66 space, 146 graphical user interface, 188 © in this web service Cambridge University Press www.cambridge.org Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information 204 Index habit, 55, 65, 66, 122, 127, 129, 131, library, 43, 51, 162, 190, 192 132, 153 standard, 43, 47, 162 hackathon, 194 linking, 36 Hamilton, Margaret, 78, 196 Lisp, 192 Haskell, 45, 190 logging, 111 Haskell example, 15, 18, 22, 26, 40, Logo, 44 80, 107, 108, 113, 129, 139 Hello World, 38 machine learning, 192 Hoare, Tony, 183 magic constant, 139 hobbits, 155 maintainability, 134 Hollywood Principle, 76 maintenance, 134 Hopper, Grace, 101 MATLAB, 191 hubris, 155 memory, 56 metasyntactic variable, 32 see IDE, integrated development method, 25, 42, 72 environment main, 72 idiom, 39, 46, 97, 148 Milner, Robin, 35 impatience, 155 minimal non-working example, 164 integrated development environment, ML, 35 14, 18, 50–55, 90, 95 MNWE, 164 IntelliJ IDEA, 53 model, 197 interactive prompt, 15, 111 model-driven engineering, 198 interpreter, 13, 34 Moore’s Law, 145 invariant, 88 Moore, Gordon, 145 Java, 45, 190 multiple choice, 185 Java annotations, 130 mung, 32 Java example, 6, 22, 27, 39, 72, 73, mutable state, 45 84, 85, 87, 91, 93, 94, 106, 114, 115, 117, 125, 130, 131, name, 89–92, 142, 144 137, 138, 140 for constant, 140 JavaScript, 34, 190 NetBeans, 53 JUnit, 75 non-termination, 118, 128 Jupyter notebook, 16 Notepad, 17 Notepad++, 18 kata, 153 NPE, 119, 130 keyboard shortcut, 51 null pointer exception, 119, 130 Knuth, Don, 82 Objective-C, 35 layout, 52, 92 off-by-one error, 130 laziness, 155 open-source, 43, 61, 191, 192, 194 lexing, 105 operating system, 15, 49 © in this web service Cambridge University Press www.cambridge.org Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Index 205 pair programming, 159 REPL, 15 paradigms, 45 requirements, 196 parsing, 105 Perl, 34, 74, 191 Scheme, 192 PHP, 34, 191 scope, 42 pointer, 189 Scratch, 14, 44 polymorphism, 41 scripting language, 44, 74, 191 positive bias, 77 segmentation fault, 118 post-condition, 88 semantics, 21, 199 pre-condition, 88 sexism, 11 print statements, 110 skeleton, 28 program, 12 snake case, 89 good enough, 152 software engineering, 4, 134, 196 Hello World, 38 software process, 198 programming, 4 space character, 95 defensive, 132 spaghetti code, 122, 163 extreme, 198 speciication, 28, 68, 69, 80 functional, 45 stack overlow, 118 imperative, 45 stack trace, 119 logic, 45 standard out, 68, 110 object-oriented, 45, 143 static type-checking, 189 pair, 159 stdout, 68, 110 programming language theory, 198 structure, 41, 99, 139, 141, 144, 152 project, 50, 173 Sublime, 18 Prolog, 45, 191 Subversion, 60 Python, 191 SVN, 60 Python example, 5, 15, 26, 28, 38, syntax, 21 68, 72, 97, 123, 128, 129, 142, syntax error, 21 143, 151 syntax highlighting, 49 quick ixes, 52 tab character, 95 TDD, 79, 85, 151 R, 192 team working, 174, 198 Racket, 192 template ile, 18 ratchet technique, 58 test, 69 RCS, 60 system, 74 recursion, 129 unit, 73 refactoring, 92, 121, 134–152 test-driven development, 79, 85, 151 relective writing, 177 testing, 68–82, 196 regression, 77 property-based, 79 see also testing quotations about, 81 repetitive strain injury, 51 regression, 77, 102, 109 © in this web service Cambridge University Press www.cambridge.org Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information 206 Index testing main, 72 version control, 53, 59–61, 66 TextEdit, 18 vi, 18 Turing complete, 186, 187 Visual Basic, 44 Turing machine, 187 Visual Studio, 54 Turing, Alan, 187 Turing-computable functions, 187 Wall, Larry, 154 type-checking, 37 warning, 104 static, 189 web applications, 190 types, 37–41, 199 while loops, 127 TypeScript, 190 whitespace, 92, 95 worklow, 50 UML, 197 undo, 55 Y2K, 188 © in this web service Cambridge University Press www.cambridge.org.
Recommended publications
  • Section “Creating R Packages” in Writing R Extensions
    Writing R Extensions Version 3.1.0 Under development (2013-03-29) R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. Copyright c 1999{2013 R Core Team i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::: 1 1 Creating R packages:::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The `DESCRIPTION' file :::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing:::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3 The `INDEX' file :::::::::::::::::::::::::::::::::::::::::: 10 1.1.4 Package subdirectories:::::::::::::::::::::::::::::::::::: 11 1.1.5 Data in packages ::::::::::::::::::::::::::::::::::::::::: 14 1.1.6 Non-R scripts in packages :::::::::::::::::::::::::::::::: 15 1.2 Configure and cleanup :::::::::::::::::::::::::::::::::::::::: 16 1.2.1 Using `Makevars'::::::::::::::::::::::::::::::::::::::::: 19 1.2.1.1 OpenMP support::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Section “Creating R Packages” in Writing R Extensions
    Writing R Extensions Version 3.0.0 RC (2013-03-28) R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. Copyright c 1999{2013 R Core Team i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::: 1 1 Creating R packages:::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The `DESCRIPTION' file :::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing:::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3 The `INDEX' file :::::::::::::::::::::::::::::::::::::::::: 10 1.1.4 Package subdirectories:::::::::::::::::::::::::::::::::::: 11 1.1.5 Data in packages ::::::::::::::::::::::::::::::::::::::::: 14 1.1.6 Non-R scripts in packages :::::::::::::::::::::::::::::::: 15 1.2 Configure and cleanup :::::::::::::::::::::::::::::::::::::::: 16 1.2.1 Using `Makevars'::::::::::::::::::::::::::::::::::::::::: 19 1.2.1.1 OpenMP support:::::::::::::::::::::::::::::::::::: 22 1.2.1.2
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 4.1.1 Patched (2021-09-22) R Core Team This manual is for R, version 4.1.1 Patched (2021-09-22). Copyright c 1999{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages ::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.3 Package Dependencies::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3.1 Suggested packages:::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 1.1.5 Package subdirectories :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Year of the Horse. the Months of The
    here are many animals named in the Template of the Hidden Texts which appear anomalous to the context. It turns out they are Chinese years or Celtic symbols (such as salmon) or constellations. Also there are several codes which the word HORSE indicates. The months of the horse,which happen to be the same horses as those of the "apocalypse" (the "unveiling"), the constellations: of the winged horse Scheat of Pegasus, the colt Equulus the foal, the horse's blaze Kurnah in Cepheus, Hippocampus the seahorse, Leucippe the white horse, Alpha Andromeda and then there is the Year of the Horse. The months of the horse have far too many ciphers ~ nag, Dan, ornament, Ma, ears, Be, Elm, shoe, Ara, Bau and all the other words which mean Gemini, Cancer, Virgo, Libra/October, Scorpio and Sagittarius. Something big is slotted for Sagittarius. The White Horse Warning at Uffington is Sagittarius, complete with the large cross of the bow and arrow. Sagittarius is not shown at all on the zodiac column of St John The Divine. This forum is a collection of all the lines with the word horse or fourteen coded within them. Before we get started on the year which is the beginning of the end for our current lifestyle, a pertinent detail will be outlined. The matter of the "shar" of the Nibiru system. The shar is the "year", the orbit this solar system keeps. Many people have many different numbers of our years in one shart. It seems the Anakim (the biblical spelling for a civilization who have as many names as there are tribes on Earth) do have some control over their system.
    [Show full text]
  • A Glossary for IWGS (Auto-Generated)
    A Glossary for IWGS (Auto-Generated) Michael Kohlhase Computer Science, FAU Erlangen-Nürnberg https://kwarc.info/kohlhase July 1, 2021 Preface This document contains an English glossary for the course Informatische Werkzeuge in den Geistes- und Sozialwissenschaften at FAU Erlangen-Nürnberg (IWGS). It is automatically generated from the sources of the IWGS course notes and should be up-to-date with the course progress. The glossary contains definitions for all technical terms used in the course, both theones defined in the course, as well as the ones presupposed. The latter should be relatively few,since IWGS is intended as a beginner’s course. 1 1 Glossary for IWGS Given a description logic D, a D-ontology consists of D-ontology–a terminology (or TBox): concepts and roles and a set of concept axioms that describe them, and – assertions (or ABox): a set of individuals and statements about concept membership and role relationships for them. To make the role of arguments extremely clear, we write functions in λ-notation. For f = f(x; E) j x 2 Xg, where E is an expression, we write λx 2 X:E. n n-dim Cartesianλ-notation space n-dim Cartesian space: A := fha1; : : : ; ani j 1≤i≤n ) ai 2 Ag, call ha1; : : : ; ani a vector n-dimensional Cartesian space An n-dimensional Cartesian product A1 × ::: × An is called a n-dimensional Cartesian space n n over A (and denoted A ) iff Ai = A for some set A for all i. We call ha1; : : : ; ani 2 A a vector. n-fold Cartesian product Let A := fAi j 1≤i≤ng be a collection of sets, then the n-fold Cartesian product A1 × ::: × An is fha1; : : : ; ani j ai 2 Ai for all 1≤i≤ng, we call ha1; : : : ; ani 2 A1 × ::: × An an n-tuple.
    [Show full text]
  • Proceedings Chapter Reference
    Proceedings Chapter Featherweight Swift: A Core Calculus for Swift's Type System RACORDON, Dimitri, BUCHS, Didier Abstract Swift is a modern general-purpose programming language, designed to be a replacement for C-based languages. Although primarily directed at development of applications for Apple’s operating systems, Swift’s adoption has been growing steadily in other domains, ranging from server-side services to machine learning. This success can be partly attributed to a rich type system that enables the design of safe, fast, and expressive programming interfaces. Unfortunately, this richness comes at the cost of complexity, setting a high entry barrier to exploit Swift’s full potential. Furthermore, existing documentation typically only relies on examples, leaving new users with little help to build a deeper under- standing of the underlying rules and mechanisms. This paper aims to tackle this issue by laying out the foundations for a formal framework to reason about Swift’s type system. We introduce Featherweight Swift, a minimal language stripped of all features not essential to describe its typing rules. Featherweight Swift features classes and protocol inheritance, supports retroactive modeling, and emulates Swift’s [...] Reference RACORDON, Dimitri, BUCHS, Didier. Featherweight Swift: A Core Calculus for Swift’s Type System. In: Proceedings of the 13th ACM SIGPLAN International Conference on Software Language En- gineering (SLE ’20). 2020. Available at: http://archive-ouverte.unige.ch/unige:144345 Disclaimer: layout of this document may differ from the published version. 1 / 1 Featherweight Swift: A Core Calculus for Swift’s Type System Dimitri Racordon Didier Buchs University of Geneva University of Geneva Department of Computer Science Department of Computer Science Switzerland Switzerland [email protected] [email protected] Abstract ACM Reference Format: Swift is a modern general-purpose programming language, Dimitri Racordon and Didier Buchs.
    [Show full text]
  • Dina Karadžić & Vedran Gligo /'Fu:Bar/ 2015 /'Fu:Bar
    Dina Karadžić & Vedran Gligo /'fu:bar/ 2015 /'fu:bar/ - sometimes used as a placeholder name, a metasyntactic variable in computer programming or computer-related documentation / “Fucked up beyond all recognition” / a glitch art exhibition in Siva Galerija. /'fu:bar/ 2015 hosted over 80 international artists and /‘fu:bar/ 2016 is happening again this september in festival form, dedicated to the error as a form of artistic expression. http://fubar.space/ net.cube (timecapsule) timeCAPsule is a visionary virtual social space. In it you articulate your visions & wishes in the form of a dialogue with other anonymous users, asking and answering questions on utopian & dystopian alternate future, politics and ethics, idealism and nihilism ideologies, etc. By straining your imagination to foresee distant future and by expressing your mind you are encapsulating your current thoughts on future events in a timeCAPsule, which wraps around a constellation of ideas. After your login, you are invited to answer the first of the questions, by which you are unlocking every respective theme. Whilst you submit your answer, you can ask a question to another user, and keep that thread of thoughts in mind (and in your mailbox). Take care of your #userlink; you should save it till the timeCAPsule opens up, June 2042. Timecapsule is still under construction and was funded through the net.cube project. Net.cube started in January 2015 as part of the Centre for Drama Art programme to establish the conditions for Internet art projects and to encourage local Internet art production, its contextualization and mapping, as well as the communication among the interested parties.
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 3.1.1 (2014-07-10) R Core Team This manual is for R, version 3.1.1 (2014-07-10). Copyright c 1999{2013 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements :::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 1.1.3 Package Dependencies :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 1.1.5 Package subdirectories ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 1.1.6 Data in packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Principles and Practice of Big Data Principles and Practice of Big Data Preparing, Sharing, and Analyzing Complex Information Second Edition
    Principles and Practice of Big Data Principles and Practice of Big Data Preparing, Sharing, and Analyzing Complex Information Second Edition Jules J. Berman Academic Press is an imprint of Elsevier 125 London Wall, London EC2Y 5AS, United Kingdom 525 B Street, Suite 1650, San Diego, CA 92101, United States 50 Hampshire Street, 5th Floor, Cambridge, MA 02139, United States The Boulevard, Langford Lane, Kidlington, Oxford OX5 1GB, United Kingdom © 2018 Elsevier Inc. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods, professional practices, or medical treatment may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
    [Show full text]
  • The Latexinfo Documentation Format Version 1.7
    The LaTEXinfo Documentation Format Version 1.7 Richard M. Stallman and Robert J. Chassell The Free Software Foundation, 675 Massachusetts Ave., Cambridge MA, Michael Clarkson Centre for Earth and Space Science, York University, North York, Ontario, M3J 1P3 February 23, 1995 Copyright c 1988, 1990, 1991 Free Software Foundation, Inc. Copyleft c 1988, 1989, 1990, 1991 Michael E. Clarkson. a This is version 1.7 of the LTEXinfo documentation, and is for Version 18 of GNU Emacs. a This is the second edition of the LTEXinfo documentation, and is also consistent with version 2 of Texinfo documentation ‘texinfo.tex’. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. Contents 1 Overview of LaTeXinfo 3 1.1 Advantages of LaTeXinfo over TeXinfo ....................... 4 1.2 Info files ........................................ 5 1.3 Printed Manuals ................................... 7 1.4 \-commands ...................................... 7 1.5 A Short Sample LaTeXinfo File ........................... 9 1.6 The Structure of this Manual ............................ 12 ILaTeX 13 2 Beginning a LaTeXinfo File 15 2.1 General Syntactic Conventions ........................... 15 2.2 What a LaTeXinfo File Must Have ........................
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 2.1.0 (2005-04-18) R Development Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copy- right notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the condi- tions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Development Core Team. Copyright c 1999–2005 R Development Core Team ISBN 3-900051-11-9 i Table of Contents Acknowledgements ........................................ 1 1 Creating R packages .................................... 2 1.1 Package structure ............................................................. 2 1.1.1 The ‘DESCRIPTION’ file .................................................... 2 1.1.2 The ‘INDEX’ file ........................................................... 4 1.1.3 The ‘install.R’ and ‘R_PROFILE.R’ files ................................... 5 1.1.4 Package subdirectories .................................................... 5 1.1.5 Package bundles .......................................................... 7 1.2 Configure and cleanup ......................................................... 7 1.2.1 Using ‘Makevars’ ........................................................
    [Show full text]
  • Beyond the Basic Stuff with Python
    BEYOND THE BASIC STUFF WITH PYTHON BEST PRACTICES FOR WRITING CLEAN CODE AL SWEIGART BEYOND THE BASIC STUFF WITH PYTHON BEYOND THE BASIC STUFF WITH PYTHON Best Practices for Writing Clean Code Al Sweigart San Francisco BEYOND THE BASIC STUFF WITH PYTHON. Copyright © 2021 by Al Sweigart. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13: 978-1-59327-966-0 (print) ISBN-13: 978-1-59327-967-7 (ebook) Publisher: William Pollock Executive Editor: Barbara Yien Production Editor: Maureen Forys, Happenstance Type-O-Rama Developmental Editor: Frances Saux Cover Design: Octopod Studios Interior Design: Octopod Studios Cover Illustration: Josh Ellingson Technical Reviewer: Kenneth Love Copyeditor: Anne Marie Walker Compositor: Happenstance Type-O-Rama Proofreader: Rachel Monaghan Indexer: Valerie Perry For information on book distributors or translations, please contact No Starch Press, Inc. directly: No Starch Press, Inc. 245 8th Street, San Francisco, CA 94103 phone: 1-415-863-9900; [email protected] www.nostarch.com Library of Congress Cataloging-in-Publication Data Library of Congress Cataloging-in-Publication Data Names: Sweigart, Al, author. Title: Beyond the basic stuff with python : best practices for writing clean code / Al Sweigart. Description: San Francisco, CA : No Starch Press, Inc., [2021] | Includes index. Identifiers: LCCN 2020034287 (print) | LCCN 2020034288 (ebook) | ISBN 9781593279660 (paperback) | ISBN 9781593279677 (ebook) Subjects: LCSH: Python (Computer program language) | Computer programming.
    [Show full text]