title: Wisp: Lisp, minus the parentheses date: 2015-09-23 17:05 author: Christine Lemmer-Webber tags: wisp, scheme, lisp, hacking, foss slug: wisp-lisp-alternative ---

Arne Babenhauserheide has built a really cool syntax alternative for Scheme, Wisp (not to be confused with a different lisp-related-wisp), or in standards version, SRFI 119. It looks pretty nice:

>     ;; hello world example
>     display                             ;    (display
>       string-append "Hello " "World!"   ;      (string-append "Hello " "World!"))
>     display "Hello Again!"              ;    (display "Hello Again!")

>     ;; hello world function
>     define : hello who                  ;    (define (hello who)
>       display                           ;      (display
>         string-append "Hello " who "!"  ;        (string-append "Hello " who "!")))

Actually, let's see that in emacs, just to be sure.

How about something slightly more substantial? How about a real life Guix package for GNU Grep:

Wow, not bad... not bad at all! I'd say that's quite readable! (Too bad the lines don't line up exactly in that screenshot; that's not the code but rather my emacs theme bolding the wisp code.)

What's nice is that unlike most s-expression alternatives, it doesn't lack any of the power of Lisp; it's "just lisp" with the parentheses hidden by vaguely pythonesque indentation, which means even macros work.

Now me personally? I've learned to love the parens, and there's nothing that beats an editor that knows how to do cool structural s-expression editing and navigation. But I admit that learning to read through all the parentheses was a tough thing for me initally, and certainly for many others. Maybe this can help boil the lisp frog for some.

Now what would really be hylarious would be to port this to Hy...