#+title: 
# ^ no title page, but title on the slides
#+LATEX: \title{wisp}

#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]
#+BEAMER_THEME: Boadilla
#+options: toc:nil

* Wisp

#+latex: \vspace{1.3cm}

**                                                                :B_columns:
    :PROPERTIES:
    :BEAMER_env: columns
    :END:
***                                                                   :BMCOL:
   :PROPERTIES:
   :BEAMER_col: 0.42
   :END:

#+BEGIN_SRC wisp 
define : factorial n
    if : zero? n
       . 1
       * n : factorial {n - 1}
#+END_SRC

**                                                                  :B_quote:
   :PROPERTIES:
   :BEAMER_env: quote
   :END:

#+latex: \vspace{1.3cm}

\begin{center}
I love the syntax of Python, \\
but crave the simplicity and power of Lisp.
\end{center}


* Why wisp?



** 
   :PROPERTIES:
   :BEAMER_act: <2-2>
   :END:

\centering
\Large

\textyen Hello World!\pounds

** 
   :PROPERTIES:
   :BEAMER_act: <3-4>
   :END:

\centering
\Large

Hello World!

** 
   :PROPERTIES:
   :BEAMER_act: <1-1>
   :END:

\centering
\Large

(Hello World!)

** Notes                                                            :B_quote:
   :PROPERTIES:
   :BEAMER_act: <4-4>
   :BEAMER_env: quote
   :END:

- The first and last letter are important for word recognition¹

- 70% of the lines in the Guile scheme source start with a paren \Rightarrow noise

\footnotesize

¹: Though not all-important. See \\ [[http://www.mrc-cbu.cam.ac.uk/people/matt.davis/cmabridge/][www.mrc-cbu.cam.ac.uk/people/matt.davis/cmabridge/]]
 
* The most common letters: a strength of Lisp and Scheme

** 

\centering
\Huge
=.,":'_#?!;=

**                                                          :B_ignoreheading:
   :PROPERTIES:
   :BEAMER_env: ignoreheading
   :END:

\centering
/The most common non-letter, non-math characters in prose¹/

\vspace{0.3cm}

** 

\centering
\Huge
=()=

**                                                          :B_ignoreheading:
   :PROPERTIES:
   :BEAMER_env: ignoreheading
   :END:

\centering
/The most common paired characters¹/

**                                                          :B_ignoreheading:
   :PROPERTIES:
   :BEAMER_env: ignoreheading
   :END:


\vspace{0.5cm}

\raggedright
\footnotesize
¹: From letter distributions in newspapers, see: \\ [[https://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/1-gramme.arne.txt][bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/1-gramme.arne.txt]]

* Wisp
**                                                                :B_columns:
   :PROPERTIES:
   :BEAMER_env: columns
   :END:
***                                                                   :BMCOL:
   :PROPERTIES:
   :BEAMER_col: 0.48
   :END:

#+BEGIN_SRC wisp 
define : factorial n
    if : zero? n
       . 1
       * n : factorial {n - 1}
#+END_SRC


***                                                                   :BMCOL:
   :PROPERTIES:
   :BEAMER_col: 0.48
   :END:

#+BEGIN_SRC wisp
(define (factorial n)
    (if (zero? n)
      1
      (* n (factorial {n - 1}))))
#+END_SRC

**                                                          :B_ignoreheading:
   :PROPERTIES:
   :BEAMER_env: ignoreheading
   :END:

\vspace{1cm}

\footnotesize
Many more examples in “From Python to Guile Scheme”: \\ [[http://draketo.de/py2guile][draketo.de/py2guile]] \rightarrow [[http://draketo.de/proj/py2guile/py2guile.pdf][draketo.de/proj/py2guile/py2guile.pdf]]

* Applications?

* Why try wisp?

- Plan B: 

* Thank you

** Thank you!

**                                                                  :B_quote:
   :PROPERTIES:
   :BEAMER_env: quote
   :END:

»ArneBab's alternate sexp syntax is best I've seen; pythonesque, hides parens but keeps power« — Christopher Webber

** Try wisp

[[http://draketo.de/english/wisp][draketo.de/english/wisp]]

# Local Variables:
# org-latex-minted-options: (("linenos" "false") ("frame" "lines") ("framesep" "6pt") ("fontsize" "\\footnotesize"))
# End: