Why Wisp?

Arne Babenhauserheide

arne_bab@web.de

2014

Elegance


On Words

Shcmee fowlols a malisimint dsegin plhpoihosy

  • Defocus a bit
  • Can you see the meaning?

Scheme for Newcomers

€Shcmee €fowlols €a €malisimint €dsegin €plhpoihosy¥¥¥¥¥¥

  • Try it again
  • Do you see how much harder it got?
  • € and ¥ escape your existing filters

On Lisp

  1. Lisp syntax uses the most common non-letter, non-math characters.
  2. The first and last characters are important for text-recognition.

Let’s call these elegance 1 and elegance 2

Any fix for elegance 2 should preserve elegance 1

Elegance 0: generality and homoiconicity: code is data

Summary: Current Lisp Syntax

  • Code is data.
  • √ Uses the most common characters.
  • × The first and last characters are always the same.

On Wisp


define : hello
         display "Hello Schemers!\n"

becomes

(define (hello)
        (display "Hello Schemers!\n"))

Why not SRFI-49 (Indentation-sensitive syntax)?

Continuing the argument list in wisp

Why not SRFI-110 (Sweet-expressions (t-expressions))

Summary: Why wisp?

Wisp syntax 1/4: function calls

Wisp syntax 2/4: Continue Arguments

Wisp syntax 3/4: Double Parens

Wisp syntax 4/4: Resilient Indentation

Summary: Wisp syntax justification

http://draketo.de/light/english/wisp-lisp-indentation-preprocessor#sec-4

Required for the goal of wisp: indentation-based lisp with a simple preprocessor

  • . to continue the argument list
  • : for double parens
  • _ to survive HTML

Wisp mission


“I love the syntax of Python, but crave the simplicity and power of Lisp.”

See the site for info how to test wisp:

http://draketo.de/light/english/wisp-lisp-indentation-preprocessor