The one problem I have with s-expression syntax is deep indentation with 
tail-nesting. 

In one lisp-like language I solved this by letting

( blah blah blah / foo foo foo / bar bar bar )

abbreviate

( blah bah blah ( foo foo foo ( bar bar bar )))

With indentation this gives

( blah blah blah
/ foo foo foo
/ bar bar bar
)

instead of

( blah blah blah 
  ( foo foo foo 
    ( bar bar bar )))

It really helps when the blah's, foo's and bar's are complicated multiline 
subexpressions. 

It linearizes long chains of nesting, and works very well with if chains.

It also works with single-variable let clauses, though it invites a syntax 
like

(let definiens definiendum blah)
instead of
(let ((definiens definiendum)) blah)

with the latter form needed only for letrec.  Adding this to existing scheme 
would probably need a different name for 'let'.

The problem I see with this is that all the convenient characters to use for 
'/' have already been taken.

This might not be such a problem for a completely new #lang, though.

-- hendrik

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20190715134928.umkug7yxonf73hgd%40topoi.pooq.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to