1865 lines
50 KiB
HTML
1865 lines
50 KiB
HTML
|
|
||
|
<!DOCTYPE HTML>
|
||
|
<html lang="" >
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
||
|
<title>The Hard Way is Easier · Learn Lisp The Hard Way</title>
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||
|
<meta name="description" content="">
|
||
|
<meta name="generator" content="GitBook 3.2.3">
|
||
|
<meta name="author" content=""the Phoeron" Colin J.E. Lupton">
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/style.css">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/gitbook-plugin-hints/plugin-hints.css">
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/gitbook-plugin-folding-chapters/folding-chapters.css">
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<meta name="HandheldFriendly" content="true"/>
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||
|
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
|
||
|
<link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
|
||
|
|
||
|
|
||
|
<link rel="next" href="preface-part-three.html" />
|
||
|
|
||
|
|
||
|
<link rel="prev" href="preface.html" />
|
||
|
|
||
|
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<div class="book">
|
||
|
<div class="book-summary">
|
||
|
|
||
|
|
||
|
<div id="book-search-input" role="search">
|
||
|
<input type="text" placeholder="Type to search" />
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<nav role="navigation">
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="summary">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="header">LEARN LISP THE HARD WAY</li>
|
||
|
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="1.1" data-path="./">
|
||
|
|
||
|
<a href="index.html">
|
||
|
|
||
|
|
||
|
Second Draft (in-progress)
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="1.2" data-path="CHANGELOG.html">
|
||
|
|
||
|
<a href="CHANGELOG.html">
|
||
|
|
||
|
|
||
|
CHANGELOG
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="1.3" data-path="TODO.html">
|
||
|
|
||
|
<a href="TODO.html">
|
||
|
|
||
|
|
||
|
TODO
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="header">PREFACE</li>
|
||
|
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="2.1" data-path="preface.html">
|
||
|
|
||
|
<a href="preface.html">
|
||
|
|
||
|
|
||
|
TANSTAAFL
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter active" data-level="2.2" data-path="preface-part-two.html">
|
||
|
|
||
|
<a href="preface-part-two.html">
|
||
|
|
||
|
|
||
|
The Hard Way is Easier
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="2.3" data-path="preface-part-three.html">
|
||
|
|
||
|
<a href="preface-part-three.html">
|
||
|
|
||
|
|
||
|
Who Is This Book For?
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="2.4" data-path="introduction.html">
|
||
|
|
||
|
<a href="introduction.html">
|
||
|
|
||
|
|
||
|
Lisp: A Future History
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="2.5" data-path="acknowledgements.html">
|
||
|
|
||
|
<a href="acknowledgements.html">
|
||
|
|
||
|
|
||
|
Acknowledgements
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="header">PART ONE</li>
|
||
|
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="3.1" data-path="1-0-0-overview.html">
|
||
|
|
||
|
<a href="1-0-0-overview.html">
|
||
|
|
||
|
|
||
|
Grokking Lisp
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1" data-path="1-01-00-lisp-bootcamp.html">
|
||
|
|
||
|
<a href="1-01-00-lisp-bootcamp.html">
|
||
|
|
||
|
|
||
|
Common Lisp Bootcamp
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.1" data-path="1-01-01-syntax-overview.html">
|
||
|
|
||
|
<a href="1-01-01-syntax-overview.html">
|
||
|
|
||
|
|
||
|
Syntax Overview in 5 Minutes
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.2" data-path="1-01-02-repl.html">
|
||
|
|
||
|
<a href="1-01-02-repl.html">
|
||
|
|
||
|
|
||
|
The REPL
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.3" data-path="1-01-03-expressions.html">
|
||
|
|
||
|
<a href="1-01-03-expressions.html">
|
||
|
|
||
|
|
||
|
Expressions, Parentheses, and Return Values
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.4" data-path="1-01-04-lists-cons-cells.html">
|
||
|
|
||
|
<a href="1-01-04-lists-cons-cells.html">
|
||
|
|
||
|
|
||
|
Lists, Cons-Cells, and Memory
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.5" data-path="1-01-05-symbols.html">
|
||
|
|
||
|
<a href="1-01-05-symbols.html">
|
||
|
|
||
|
|
||
|
Symbols and Namespaces
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.6" data-path="1-01-06-prefix-notation.html">
|
||
|
|
||
|
<a href="1-01-06-prefix-notation.html">
|
||
|
|
||
|
|
||
|
Prefix Notation
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.7" data-path="1-01-07-style-guide.html">
|
||
|
|
||
|
<a href="1-01-07-style-guide.html">
|
||
|
|
||
|
|
||
|
Common Lisp Style Guide
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.1.8" data-path="1-01-08-configuration.html">
|
||
|
|
||
|
<a href="1-01-08-configuration.html">
|
||
|
|
||
|
|
||
|
Configuring Your Development Environment
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2" data-path="1-02-00-input-output.html">
|
||
|
|
||
|
<a href="1-02-00-input-output.html">
|
||
|
|
||
|
|
||
|
Printing, Streams, and Strings
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.1" data-path="1-02-01-strings.html">
|
||
|
|
||
|
<a href="1-02-01-strings.html">
|
||
|
|
||
|
|
||
|
Strings
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.2" data-path="1-02-02-more-strings.html">
|
||
|
|
||
|
<a href="1-02-02-more-strings.html">
|
||
|
|
||
|
|
||
|
More Strings
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.3" data-path="1-02-03-unicode.html">
|
||
|
|
||
|
<a href="1-02-03-unicode.html">
|
||
|
|
||
|
|
||
|
Unicode and Strings
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.4" data-path="1-02-04-chars.html">
|
||
|
|
||
|
<a href="1-02-04-chars.html">
|
||
|
|
||
|
|
||
|
Characters
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.5" data-path="1-02-05-more-chars.html">
|
||
|
|
||
|
<a href="1-02-05-more-chars.html">
|
||
|
|
||
|
|
||
|
More Characters
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.6" data-path="1-02-06-char-codes.html">
|
||
|
|
||
|
<a href="1-02-06-char-codes.html">
|
||
|
|
||
|
|
||
|
Character Codes
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.7" data-path="1-02-07-strings-from-chars.html">
|
||
|
|
||
|
<a href="1-02-07-strings-from-chars.html">
|
||
|
|
||
|
|
||
|
Strings from Chars
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.8" data-path="1-02-08-printing.html">
|
||
|
|
||
|
<a href="1-02-08-printing.html">
|
||
|
|
||
|
|
||
|
Printing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.9" data-path="1-02-09-more-printing.html">
|
||
|
|
||
|
<a href="1-02-09-more-printing.html">
|
||
|
|
||
|
|
||
|
More Printing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.10" data-path="1-02-10-prin1.html">
|
||
|
|
||
|
<a href="1-02-10-prin1.html">
|
||
|
|
||
|
|
||
|
Printing With prin1
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.11" data-path="1-02-11-princ.html">
|
||
|
|
||
|
<a href="1-02-11-princ.html">
|
||
|
|
||
|
|
||
|
Printing With princ
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.12" data-path="1-02-12-format.html">
|
||
|
|
||
|
<a href="1-02-12-format.html">
|
||
|
|
||
|
|
||
|
A Brief Introduction to Format
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.13" data-path="1-02-13-more-format.html">
|
||
|
|
||
|
<a href="1-02-13-more-format.html">
|
||
|
|
||
|
|
||
|
A Little Bit More on Format
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.14" data-path="1-02-14-pathnames.html">
|
||
|
|
||
|
<a href="1-02-14-pathnames.html">
|
||
|
|
||
|
|
||
|
Pathnames
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.15" data-path="1-02-15-streams.html">
|
||
|
|
||
|
<a href="1-02-15-streams.html">
|
||
|
|
||
|
|
||
|
Streams
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.16" data-path="1-02-16-file-streams.html">
|
||
|
|
||
|
<a href="1-02-16-file-streams.html">
|
||
|
|
||
|
|
||
|
File Streams
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.17" data-path="1-02-17-binary-streams.html">
|
||
|
|
||
|
<a href="1-02-17-binary-streams.html">
|
||
|
|
||
|
|
||
|
Binary Streams
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.18" data-path="1-02-18-prompting-users.html">
|
||
|
|
||
|
<a href="1-02-18-prompting-users.html">
|
||
|
|
||
|
|
||
|
Prompting Users
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.2.19" data-path="1-02-19-pretty-printing.html">
|
||
|
|
||
|
<a href="1-02-19-pretty-printing.html">
|
||
|
|
||
|
|
||
|
Pretty-Printing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.3" data-path="1-03-0-getting-input-from-users.html">
|
||
|
|
||
|
<a href="1-03-0-getting-input-from-users.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Getting Input from Users
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.4" data-path="1-04-0-lists.html">
|
||
|
|
||
|
<a href="1-04-0-lists.html">
|
||
|
|
||
|
|
||
|
Lists and List-Operations
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.5" data-path="1-05-0-lookups-trees.html">
|
||
|
|
||
|
<a href="1-05-0-lookups-trees.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Look-up Lists and Trees
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6" data-path="1-06-0-math.html">
|
||
|
|
||
|
<a href="1-06-0-math.html">
|
||
|
|
||
|
|
||
|
Numbers and Math
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.1" data-path="1-06-01-integers.html">
|
||
|
|
||
|
<a href="1-06-01-integers.html">
|
||
|
|
||
|
|
||
|
Integers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.2" data-path="1-06-02-more-integers.html">
|
||
|
|
||
|
<a href="1-06-02-more-integers.html">
|
||
|
|
||
|
|
||
|
More Integers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.3" data-path="1-06-03-hexadecimal-notation.html">
|
||
|
|
||
|
<a href="1-06-03-hexadecimal-notation.html">
|
||
|
|
||
|
|
||
|
Hexadecimal Integer Notation
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.4" data-path="1-06-04-octal-notation.html">
|
||
|
|
||
|
<a href="1-06-04-octal-notation.html">
|
||
|
|
||
|
|
||
|
Octal Integer Notation
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.5" data-path="1-06-05-binary-notation.html">
|
||
|
|
||
|
<a href="1-06-05-binary-notation.html">
|
||
|
|
||
|
|
||
|
Binary Integer Notation
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.6" data-path="1-06-06-ratios.html">
|
||
|
|
||
|
<a href="1-06-06-ratios.html">
|
||
|
|
||
|
|
||
|
Ratios and Rational Numbers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.7" data-path="1-06-07-floating-point.html">
|
||
|
|
||
|
<a href="1-06-07-floating-point.html">
|
||
|
|
||
|
|
||
|
Floating-point Numbers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.8" data-path="1-06-08-constants.html">
|
||
|
|
||
|
<a href="1-06-08-constants.html">
|
||
|
|
||
|
|
||
|
Numeric Constants
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.9" data-path="1-06-09-complex-numbers.html">
|
||
|
|
||
|
<a href="1-06-09-complex-numbers.html">
|
||
|
|
||
|
|
||
|
Complex Numbers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.10" data-path="1-06-10-arithmetic.html">
|
||
|
|
||
|
<a href="1-06-10-arithmetic.html">
|
||
|
|
||
|
|
||
|
Arithmetic
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.11" data-path="1-06-11-more-arithmetic.html">
|
||
|
|
||
|
<a href="1-06-11-more-arithmetic.html">
|
||
|
|
||
|
|
||
|
More Arithmetic
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.12" data-path="1-06-12-even-more-arithmetic.html">
|
||
|
|
||
|
<a href="1-06-12-even-more-arithmetic.html">
|
||
|
|
||
|
|
||
|
Even More Arithmetic
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.13" data-path="1-06-13-exponents.html">
|
||
|
|
||
|
<a href="1-06-13-exponents.html">
|
||
|
|
||
|
|
||
|
Exponents
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.14" data-path="1-06-14-logarithms.html">
|
||
|
|
||
|
<a href="1-06-14-logarithms.html">
|
||
|
|
||
|
|
||
|
Logarithms
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.15" data-path="1-06-15-trigonometry.html">
|
||
|
|
||
|
<a href="1-06-15-trigonometry.html">
|
||
|
|
||
|
|
||
|
Trigonometry
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.6.16" data-path="1-06-16-psuedorandom-numbers.html">
|
||
|
|
||
|
<a href="1-06-16-psuedorandom-numbers.html">
|
||
|
|
||
|
|
||
|
Pseudo-Random Numbers
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.7" data-path="1-07-0-arrays.html">
|
||
|
|
||
|
<a href="1-07-0-arrays.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Arrays and Vectors
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.8" data-path="1-08-0-variables.html">
|
||
|
|
||
|
<a href="1-08-0-variables.html">
|
||
|
|
||
|
|
||
|
Variables, Parameters, and Constants
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.9" data-path="1-09-0-closures.html">
|
||
|
|
||
|
<a href="1-09-0-closures.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Closures
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.10" data-path="1-10-0-functions.html">
|
||
|
|
||
|
<a href="1-10-0-functions.html">
|
||
|
|
||
|
|
||
|
Functions and Macros
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.11" data-path="1-11-0-text-adventure.html">
|
||
|
|
||
|
<a href="1-11-0-text-adventure.html">
|
||
|
|
||
|
|
||
|
Extra Credit: A Simple Text Adventure
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.12" data-path="1-12-0-namespaces.html">
|
||
|
|
||
|
<a href="1-12-0-namespaces.html">
|
||
|
|
||
|
|
||
|
Namespaces, Symbols, Packages, and Systems
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.13" data-path="1-13-0-simple-web-app.html">
|
||
|
|
||
|
<a href="1-13-0-simple-web-app.html">
|
||
|
|
||
|
|
||
|
Extra Credit: A Simple Web Application
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.14" data-path="1-14-0-conditionals.html">
|
||
|
|
||
|
<a href="1-14-0-conditionals.html">
|
||
|
|
||
|
|
||
|
Conditionals
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.15" data-path="1-15-0-command-line-utility.html">
|
||
|
|
||
|
<a href="1-15-0-command-line-utility.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Command-Line Utilities
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.16" data-path="1-16-0-map-loop.html">
|
||
|
|
||
|
<a href="1-16-0-map-loop.html">
|
||
|
|
||
|
|
||
|
Mapping and Looping
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.17" data-path="1-17-0-iterate.html">
|
||
|
|
||
|
<a href="1-17-0-iterate.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Revisiting Loops with Iterate
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.18" data-path="1-18-0-format.html">
|
||
|
|
||
|
<a href="1-18-0-format.html">
|
||
|
|
||
|
|
||
|
Format Strings
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.19" data-path="1-19-0-dsl.html">
|
||
|
|
||
|
<a href="1-19-0-dsl.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Domain Specific Languages
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="3.1.20" data-path="1-20-0-review.html">
|
||
|
|
||
|
<a href="1-20-0-review.html">
|
||
|
|
||
|
|
||
|
Part One in Review
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="header">PART TWO</li>
|
||
|
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="4.1" data-path="2-0-0-overview.html">
|
||
|
|
||
|
<a href="2-0-0-overview.html">
|
||
|
|
||
|
|
||
|
The Suffusion of Blue
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="4.1.1" data-path="2-01-0-programming-paradigms.html">
|
||
|
|
||
|
<a href="2-01-0-programming-paradigms.html">
|
||
|
|
||
|
|
||
|
Programming Paradigms
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.2" data-path="2-02-0-regex.html">
|
||
|
|
||
|
<a href="2-02-0-regex.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Regular Expressions
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.3" data-path="2-03-0-objects-control.html">
|
||
|
|
||
|
<a href="2-03-0-objects-control.html">
|
||
|
|
||
|
|
||
|
Objects and Control Structures
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.4" data-path="2-04-0-data-persistence.html">
|
||
|
|
||
|
<a href="2-04-0-data-persistence.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Persistence and Databases
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.5" data-path="2-05-0-extended-types.html">
|
||
|
|
||
|
<a href="2-05-0-extended-types.html">
|
||
|
|
||
|
|
||
|
Extended Types
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.6" data-path="2-06-0-threads-memos-parallel.html">
|
||
|
|
||
|
<a href="2-06-0-threads-memos-parallel.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Concurrency and Memoization
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.7" data-path="2-07-0-logic-and-more-math.html">
|
||
|
|
||
|
<a href="2-07-0-logic-and-more-math.html">
|
||
|
|
||
|
|
||
|
Logic and Advanced Math
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.8" data-path="2-08-0-number-theory.html">
|
||
|
|
||
|
<a href="2-08-0-number-theory.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Number Theory
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.9" data-path="2-09-0-binary-octets-bits.html">
|
||
|
|
||
|
<a href="2-09-0-binary-octets-bits.html">
|
||
|
|
||
|
|
||
|
Binary Streams, Octet-Vectors, and Bit-Vectors
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.10" data-path="2-10-0-improved-text-adventure-engine.html">
|
||
|
|
||
|
<a href="2-10-0-improved-text-adventure-engine.html">
|
||
|
|
||
|
|
||
|
Extra Credit: An Improved Text Adventure Engine
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.11" data-path="2-11-0-conditions.html">
|
||
|
|
||
|
<a href="2-11-0-conditions.html">
|
||
|
|
||
|
|
||
|
Conditions and Error Handling
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.12" data-path="2-12-0-2d-game.html">
|
||
|
|
||
|
<a href="2-12-0-2d-game.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Write a 2D Game
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.13" data-path="2-13-0-compiler.html">
|
||
|
|
||
|
<a href="2-13-0-compiler.html">
|
||
|
|
||
|
|
||
|
The Compiler
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.14" data-path="2-14-0-tree-shaker.html">
|
||
|
|
||
|
<a href="2-14-0-tree-shaker.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Write a Tree-Shaker
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.15" data-path="2-15-0-docs-and-inspection.html">
|
||
|
|
||
|
<a href="2-15-0-docs-and-inspection.html">
|
||
|
|
||
|
|
||
|
Documentation and Inspection
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.16" data-path="2-16-0-foreign-libs.html">
|
||
|
|
||
|
<a href="2-16-0-foreign-libs.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Foreign Libraries in Lisp
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.17" data-path="2-17-0-debugging-testing.html">
|
||
|
|
||
|
<a href="2-17-0-debugging-testing.html">
|
||
|
|
||
|
|
||
|
Debugging and Unit Testing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.18" data-path="2-18-0-ffi.html">
|
||
|
|
||
|
<a href="2-18-0-ffi.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Write a Foreign Function Interface
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.19" data-path="2-19-0-essential-libs.html">
|
||
|
|
||
|
<a href="2-19-0-essential-libs.html">
|
||
|
|
||
|
|
||
|
Essential Lisp Libraries
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.20" data-path="2-20-0-packaging-libs.html">
|
||
|
|
||
|
<a href="2-20-0-packaging-libs.html">
|
||
|
|
||
|
|
||
|
Extra Credit: Packaging Lisp Libraries
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="4.1.21" data-path="2-21-0-review.html">
|
||
|
|
||
|
<a href="2-21-0-review.html">
|
||
|
|
||
|
|
||
|
Detailed Syntax Review
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="header">PART THREE</li>
|
||
|
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="5.1" data-path="3-00-00-overview.html">
|
||
|
|
||
|
<a href="3-00-00-overview.html">
|
||
|
|
||
|
|
||
|
Lisp So(u)rcery
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<ul class="articles">
|
||
|
|
||
|
|
||
|
<li class="chapter " data-level="5.1.1" data-path="3-01-00-web-apps.html">
|
||
|
|
||
|
<a href="3-01-00-web-apps.html">
|
||
|
|
||
|
|
||
|
Real-world Web Apps
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.2" data-path="3-02-00-typesetting.html">
|
||
|
|
||
|
<a href="3-02-00-typesetting.html">
|
||
|
|
||
|
|
||
|
Typesetting
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.3" data-path="3-03-00-mobile.html">
|
||
|
|
||
|
<a href="3-03-00-mobile.html">
|
||
|
|
||
|
|
||
|
Native Mobile Applications
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.4" data-path="3-04-00-gui.html">
|
||
|
|
||
|
<a href="3-04-00-gui.html">
|
||
|
|
||
|
|
||
|
Cross-platform Desktop Applications
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.5" data-path="3-05-00-system-utils.html">
|
||
|
|
||
|
<a href="3-05-00-system-utils.html">
|
||
|
|
||
|
|
||
|
Drivers, Daemons, and System-Utilities
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.6" data-path="3-06-00-reverse-engineering.html">
|
||
|
|
||
|
<a href="3-06-00-reverse-engineering.html">
|
||
|
|
||
|
|
||
|
Reverse Engineering
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.7" data-path="3-07-00-graphics.html">
|
||
|
|
||
|
<a href="3-07-00-graphics.html">
|
||
|
|
||
|
|
||
|
Graphics Rendering
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.8" data-path="3-08-00-gaming.html">
|
||
|
|
||
|
<a href="3-08-00-gaming.html">
|
||
|
|
||
|
|
||
|
OpenGL, SDL, and 3D Game Development
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.9" data-path="3-09-00-audio.html">
|
||
|
|
||
|
<a href="3-09-00-audio.html">
|
||
|
|
||
|
|
||
|
Audio Generation and Manipulation
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.10" data-path="3-10-00-data.html">
|
||
|
|
||
|
<a href="3-10-00-data.html">
|
||
|
|
||
|
|
||
|
Data Aggregation and Analysis
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.11" data-path="3-11-00-cryptosec.html">
|
||
|
|
||
|
<a href="3-11-00-cryptosec.html">
|
||
|
|
||
|
|
||
|
Cryptography and Security
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.12" data-path="3-12-00-fintech.html">
|
||
|
|
||
|
<a href="3-12-00-fintech.html">
|
||
|
|
||
|
|
||
|
Financial Software and Crypto-Currencies
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.13" data-path="3-13-00-scientific-computing.html">
|
||
|
|
||
|
<a href="3-13-00-scientific-computing.html">
|
||
|
|
||
|
|
||
|
Scientific Computing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.14" data-path="3-14-00-computational-physics.html">
|
||
|
|
||
|
<a href="3-14-00-computational-physics.html">
|
||
|
|
||
|
|
||
|
Computational Physics
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.15" data-path="3-15-00-quantum-computing.html">
|
||
|
|
||
|
<a href="3-15-00-quantum-computing.html">
|
||
|
|
||
|
|
||
|
Quantum Computing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.16" data-path="3-16-00-nlp.html">
|
||
|
|
||
|
<a href="3-16-00-nlp.html">
|
||
|
|
||
|
|
||
|
Natural Language Processing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.17" data-path="3-17-00-ai.html">
|
||
|
|
||
|
<a href="3-17-00-ai.html">
|
||
|
|
||
|
|
||
|
Artificial Intelligence
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.18" data-path="3-18-00-robotics.html">
|
||
|
|
||
|
<a href="3-18-00-robotics.html">
|
||
|
|
||
|
|
||
|
Robotics
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.19" data-path="3-19-00-space-tech.html">
|
||
|
|
||
|
<a href="3-19-00-space-tech.html">
|
||
|
|
||
|
|
||
|
Space Tech
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.20" data-path="3-20-00-neurotech.html">
|
||
|
|
||
|
<a href="3-20-00-neurotech.html">
|
||
|
|
||
|
|
||
|
Neuroscience and Thought-Controlled Computing
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.21" data-path="3-21-00-lispos.html">
|
||
|
|
||
|
<a href="3-21-00-lispos.html">
|
||
|
|
||
|
|
||
|
A Simple LispOS
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.22" data-path="3-22-00-lisp-machine.html">
|
||
|
|
||
|
<a href="3-22-00-lisp-machine.html">
|
||
|
|
||
|
|
||
|
Build Your Own Lisp Machine
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="chapter " data-level="5.1.23" data-path="3-23-00-gov-mil.html">
|
||
|
|
||
|
<a href="3-23-00-gov-mil.html">
|
||
|
|
||
|
|
||
|
Government and Military Grade Systems
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="divider"></li>
|
||
|
|
||
|
<li>
|
||
|
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
|
||
|
Published with GitBook
|
||
|
</a>
|
||
|
</li>
|
||
|
</ul>
|
||
|
|
||
|
|
||
|
</nav>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div class="book-body">
|
||
|
|
||
|
<div class="body-inner">
|
||
|
|
||
|
|
||
|
|
||
|
<div class="book-header" role="navigation">
|
||
|
|
||
|
|
||
|
<!-- Title -->
|
||
|
<h1>
|
||
|
<i class="fa fa-circle-o-notch fa-spin"></i>
|
||
|
<a href="index.html" >The Hard Way is Easier</a>
|
||
|
</h1>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<div class="page-wrapper" tabindex="-1" role="main">
|
||
|
<div class="page-inner">
|
||
|
|
||
|
<div id="book-search-results">
|
||
|
<div class="search-noresults">
|
||
|
|
||
|
<section class="normal markdown-section">
|
||
|
|
||
|
<h1 id="preface-pt-ii">Preface pt. II</h1>
|
||
|
<h2 id="the-hard-way-is-easier">The Hard Way Is Easier</h2>
|
||
|
<blockquote>
|
||
|
<p>"The hardest part about gaining any new idea is sweeping out the false idea occupying that niche. As long as that niche is occupied, evidence and proof and logical demonstration get nowhere. But once the niche is emptied of the wrong idea that has been filling it---once you can honestly say, 'I don't know,' then it becomes possible to get at the truth."</p>
|
||
|
<footer>Robert A. Heinlein, <em>The Cat Who Walks Through Walls</em></footer>
|
||
|
|
||
|
</blockquote>
|
||
|
<p>Whatever you think you know about programming, forget it. Lisp is different from other programming languages.</p>
|
||
|
<p>If you're coming to Lisp as an experienced developer, it is only fair to tell you up-front that your experience will hold you back. It will make you feel bored when the material isn't "challenging you". It will make you skip over sections you think you already understand. It will tell you reading the code examples once is enough to learn it, that it's okay to copy-and-paste. <em>But this experience is a lie</em>. If you slack off now, you'll only be making things harder for yourself later.</p>
|
||
|
<p>No matter who you are or what your background is, if you stick to the steps of learning <em>The Hard Way</em>, you'll see that it is actually easier in the long run. You'll have to work hard, but you'll learn what you need to learn the first time, and you won't forget it.</p>
|
||
|
<p>Learning the hard way means following these five steps every day until you've completed this book:</p>
|
||
|
<ol>
|
||
|
<li>Forget everything you know</li>
|
||
|
<li>Work through each exercise from beginning to end</li>
|
||
|
<li>Type in each example <em>exactly</em></li>
|
||
|
<li>Make the code run</li>
|
||
|
<li>Reflect on what you've seen</li>
|
||
|
</ol>
|
||
|
<p>And that's all.</p>
|
||
|
<p>Depending on your level of self-discipline, you may have a more difficult time sticking to these steps than some---but this isn't a contest. Don't worry about how long it takes you to work through an exercise, don't panic if you have to miss a day, and don't compare yourself to others. If you do your best to apply these steps every day, you will develop the self-discipline required to see this book through to the end.</p>
|
||
|
<p>An important theme of this book is also on the skills necessary for programming in general, while using Lisp to reinforce them. These skills are: reading and writing, attention to detail, spotting differences, and mathematics. Thus, once you finish this book, you won't just be a Lisp Hacker, you'll be ready to tackle other programming languages too---and in the process you might just discover that learning a new skill is more fun than any hobby, game, movie, or tv show.</p>
|
||
|
<h3 id="reading-and-writing">Reading and Writing</h3>
|
||
|
<p>Programming, much like human language, involves the intentional use of a specific set of language-dependent characters that have <em>meaning</em>, some of which you might not be used to typing. Programming is significantly more exact than human languages---if you have trouble reading, writing, or typing, you will struggle writing code.</p>
|
||
|
<p>Take the time to read over the code examples carefully, and double-check your work once you have typed it. This will save you from many stress headaches along the way.</p>
|
||
|
<h3 id="attention-to-detail">Attention to Detail</h3>
|
||
|
<p>More than any other skill, what separates a professional from an amateur in every field and trade is attention to detail. In programming, this is especially obvious; it makes the difference between sluggish, buggy software that regularly crashes and leads to hair-loss in its users, and a refined, user-friendly, indispensable tool.</p>
|
||
|
<p>By manually typing each exercise <em>exactly</em> as you work through this book, you will be training your brain to focus on the subtle details of what you are doing, while you are doing it.</p>
|
||
|
<h3 id="spotting-differences">Spotting Differences</h3>
|
||
|
<p>The natural extension to the first two skills is the ability to spot differences. With careful reading, typing, and attention to detail, you will also be training your brain to highlight subtle differences for you, so that when you make a mistake, you notice, and can correct it immediately.</p>
|
||
|
<p>Naturally, this skill will also help you more quickly spot and correct bugs in other people's code that you have to upgrade and maintain.</p>
|
||
|
<h3 id="mathematics">Mathematics</h3>
|
||
|
<p>Remember in high school, there was always at least one classmate that would demand to know when, in life, any of you would ever need to know half the stuff they taught you? You may have even been that student. If so, you may be disappointed to know that many problem domains a professional programmer has to deal with on a daily basis require nearly the entire high school and university level math curricula. I'm not talking about highly specialized fields either, like Quantum Computing; Currency, Stock, and Commodity exchange; or Cryptography---junior game, mobile, and web developers need math too. As <a href="http://zedshaw.com/archive/programmers-need-to-learn-statistics-or-i-will-kill-them-all/" target="_blank">Zed Shaw argued</a> in an excellent, albeit <em>angry rant</em> essay, at the very least you should know Statistics. But Algebra, Geometry, Trigonometry, Calculus, Lambda Calculus---and of course, Algorithms---are extremely useful tools that will help you reason about and abstract your code at a whole new level.</p>
|
||
|
<p>If the very idea of math makes your heart skip a beat, your hands shake, and your brow drip with sweat, just remember the infamous words inscribed on the cover of the Hitchhiker's Guide to the Galaxy: DON'T PANIC. You <em>don't have to be a math-whiz</em> to learn programming <em>or</em> Lisp, and this book assumes little to no familiarity with math above the grade-school level. You can learn the math you need along the way, when you need it---and you will probably understand it better this time because you'll see its practical value. Just remember that math is your friend---even when it's not essential, formal quantitative reasoning, analysis, and deductive reasoning will give you an edge over other developers, and help you write better software. Oh right, and <em>make sure you know where your towel is</em>.</p>
|
||
|
<h3 id="no-copy-and-paste">No Copy-and-Paste</h3>
|
||
|
<p>If you copy-and-paste the code from the exercises into the Lisp REPL instead of typing them out yourself, you might as well not do them at all. As both teacher and student for the duration of this book, you have to force yourself to type in every example. No matter how easy or self-evident a code example appears to be, you have to stop yourself from cheating.</p>
|
||
|
<p>The point of these exercises is to train your hands, your eyes, your brain, and your mind how to read, write, see, think, and dream code. When you cheat here, you're only cheating yourself.</p>
|
||
|
|
||
|
|
||
|
</section>
|
||
|
|
||
|
</div>
|
||
|
<div class="search-results">
|
||
|
<div class="has-results">
|
||
|
|
||
|
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
||
|
<ul class="search-results-list"></ul>
|
||
|
|
||
|
</div>
|
||
|
<div class="no-results">
|
||
|
|
||
|
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
<a href="preface.html" class="navigation navigation-prev " aria-label="Previous page: TANSTAAFL">
|
||
|
<i class="fa fa-angle-left"></i>
|
||
|
</a>
|
||
|
|
||
|
|
||
|
<a href="preface-part-three.html" class="navigation navigation-next " aria-label="Next page: Who Is This Book For?">
|
||
|
<i class="fa fa-angle-right"></i>
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<script>
|
||
|
var gitbook = gitbook || [];
|
||
|
gitbook.push(function() {
|
||
|
gitbook.page.hasChanged({"page":{"title":"The Hard Way is Easier","level":"2.2","depth":1,"next":{"title":"Who Is This Book For?","level":"2.3","depth":1,"path":"preface-part-three.md","ref":"preface-part-three.md","articles":[]},"previous":{"title":"TANSTAAFL","level":"2.1","depth":1,"path":"preface.md","ref":"preface.md","articles":[]},"dir":"ltr"},"config":{"plugins":["hints","folding-chapters"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"hints":{"danger":"fa fa-exclamation-circle","info":"fa fa-info-circle","tip":"fa fa-mortar-board","working":"fa fa-wrench"},"folding-chapters":{},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"\"the Phoeron\" Colin J.E. Lupton","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"index.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Learn Lisp The Hard Way","gitbook":"*"},"file":{"path":"preface-part-two.md","mtime":"2022-08-23T00:01:55.640Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2022-08-24T16:15:01.957Z"},"basePath":".","book":{"language":""}});
|
||
|
});
|
||
|
</script>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook.js"></script>
|
||
|
<script src="gitbook/theme.js"></script>
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-folding-chapters/folding-chapters.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-search/search.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
<script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
</body>
|
||
|
</html>
|
||
|
|