From 87da72ba101e3ee23fcc7ce22562b4087efa5dfe Mon Sep 17 00:00:00 2001 From: Greg Hendershott Date: Thu, 25 Oct 2012 13:27:49 -0400 Subject: [PATCH] Add "Fear of Macros" banner --- fear-of-macros.jpg | Bin 0 -> 20127 bytes index.html | 6 ++++-- main.rkt | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 fear-of-macros.jpg diff --git a/fear-of-macros.jpg b/fear-of-macros.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce003b665c5119121b041d3d83d77520c84eae0b GIT binary patch literal 20127 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

Z|l!R*LFwvyI{#Y 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 -Fear of Macros

Fear of Macros

Greg Hendershott

Copyright (c) 2012 by Greg Hendershott. All rights reserved. -
Last updated 2012-10-25 10:16:15

1 Introduction

I learned Racket after 25 years of doing C/C++ imperative programming.

Some psychic whiplash resulted.

"All the parentheses" was actually not a big deal. Instead, the first +Fear of Macros

Fear of Macros

Greg Hendershott

+ +
Copyright (c) 2012 by Greg Hendershott. All rights reserved. +
Last updated 2012-10-25 13:26:46

1 Introduction

I learned Racket after 25 years of doing C/C++ imperative programming.

Some psychic whiplash resulted.

"All the parentheses" was actually not a big deal. Instead, the first mind warp was functional programming. Before long I wrapped my brain around it, and went on to become comfortable and effective with many other aspects and features of Racket.

But two final frontiers remained: Macros and continuations.

I found that simple macros were easy and understandable, plus there diff --git a/main.rkt b/main.rkt index aad5b19..645fae6 100644 --- a/main.rkt +++ b/main.rkt @@ -14,6 +14,7 @@ @(define-syntax-rule (i body ...) (interaction #:eval evaluator body ...)) +@image["fear-of-macros.jpg"] @title[#:version ""]{Fear of Macros} @author{Greg Hendershott} @smaller{Copyright (c) 2012 by Greg Hendershott. All rights reserved.}