#+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:
\vspace{0.5cm}
#+BEGIN_SRC wisp
define : factorial n
if : zero? n
. 1
* n : factorial {n - 1}
#+END_SRC
*** :BMCOL:
:PROPERTIES:
:BEAMER_col: 0.48
:END:
\vspace{0.5cm}
#+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
- Wisp uses the minimal syntax required to represent arbitrary structures: \\ Syntax justification: [[http://draketo.de/english/wisp#sec-4][draketo.de/english/wisp#sec-4]]
- 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: