On Sun, Jul 15, 2012 at 8:13 AM, Kartik Agaram <a...@akkartik.com> wrote: >> https://sourceforge.net/p/readable/wiki/Solution/ >> "A leading quote, comma, backquote, or comma-at, followed by space or tab, >> is a list with that operator and the following expression." >> >> Of course, if you think that's a bad idea, then let's discuss! This is >> straight from SRFI-49.. > > It's not this rule in particular, but the spec as a whole seems quite > complex. http://www.dwheeler.com/readable/version02.html is quite > long, and it includes this wormhole to the universe of SRFI 49, which > the reader must also understand. It might be a useful exercise to > inline SRFI's rules into v0.3 and try to organize them to be shorter > and simpler. v0.2 tries to be both a tutorial and a spec, and I think > that makes it too intimidating. Lose the motivation, assume that the > reader is already on board by the time (s)he gets to that page, etc., > etc. > > --- > > GROUP doesn't seem worth the extra complexity required to explain it > to others. If you have a list with a nested list as its first > element.. just add parens. We don't need alternate syntax for every > possible situation. > > Some of the burden of being readable must fall also to the user of our > notation. If lists in function position are hard to read we need > incentives to avoid them.
It's not lists in function position, it's support for the design of let, which requires a list of lists. let group var1 combine expr1(x) expr2(y) expr3 {w - v} {w + {v * z}} var2 combine expr1(w) expr2(y) expr3 extract(w) recombine(v y x) use var1 var2 Wart has two major differences from sweet-expressions that makes GROUP superfluous in it: 1. It uses the Arcan let, which just assigns a single variable. 2. It allows indentation processing inside parentheses. These two make saying "just add parens" easy. However, sweet-expressions has the following properties: 1. It has to support a wide variety of syntaxes. So we support a goodly number of escapes (GROUP/SPLIT) to adapt to various kinds of syntax. 2. It disables indentation processing inside parentheses. The following e-mail you had is somewhat telling: On Sat, Jul 14, 2012 at 10:43 AM, Kartik Agaram <a...@akkartik.com> wrote: >> The idea of suppressing paren-insertion inside explicit parens is a >> good one. I had considered it, but I hadn't noticed that it allows me >> to get rid of the single-space rule. I'm going to try that! > > Ok, this change is now in: http://github.com/akkartik/wart/commit/3320d257ac > > Judging by the line-count savings, this is a huge win. In addition, > the description in the Readme is *much* shorter and simpler. The > entire section on exceptions is gone. Basically, your approach of using indentation processing inside parenthesis is dual to our approach of including special syntax for list-of-lists: both work to make long expressions inside let variable bindings readable. So the comparison here is: How clear, consistent, and flexible are the rules for indentation-inside-parenthesis compared to no-indentation-inside-parenthesis-but-has-GROUP/SPLIT? > > Is sweet expressions trying to make lisp syntax familiar to > non-lispers? With wart I wasn't trying to make the notation look > familiar, just to make it easier to read at length. I was trying to > keep my readers reading when they don't have the fluency to parse all > the parens just yet. The goal of sweet-expressions is to work with as many Lisp variants as possible. dwheeler believes that this would help avoid the Dylan trap, which made the surface syntax specific to the underlying semantic: by trying out sweet-expressions on various kinds of Lisp, we hope to make a good specifications that is decoupled from the underlying semantics, by trying out the same surface syntax with different actual semantics. Scheme and CL are very similar to each other, especially in terms of basics such as let. Arc shakes up let and cond syntax, and is a useful yardstick for us to consider if we are getting too specific to Scheme/CL-style let and cond. As an aside, one thing we *still* don't support very well is CL's loop. You're pretty much constrained to use parens for that to get any readability. Sincerely, AmkG ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Readable-discuss mailing list Readable-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/readable-discuss