Okay, Beni showed how to properly use his formulation of SUBLIST for multi-item let, in the other thread "$ at end of line bug?":
let $ x $ compute 'x y $ compute 'y use x y Here's another (ab)use: let $ $ x ! ! ! ! ! compute 'x ! ! ! ! y ! ! ! ! ! compute 'y ! use x y ==> let INDENT INDENT x ; stack: (0 ? ?) INDENT compute 'x ; stack (0 ? ? 10) DEDENT y ; stack (0 ? 8) INDENT compute 'y ; stack (0 ? 8 10) DEDENT DEDENT ; stack (0 ?), indentation = 2 use x y ; stack (0 2) DEDENT ==> let !\\ !!x !!!compute 'x !!y !!!compute 'y !use x y -- I like Beni's formulation. It's a whole lot cooler than my original formulation of SUBLIST, and follows the SUBLIST and monotonic indent equivalence theorem: foo $ x $ y <==> foo ! x ! ! y -- Also need to insert this rule for interaction between SUBLIST and GROUP/SPLIT. SPLIT. Whenever a GROUP/SPLIT is encountered that is not the first item on the line (i.e. SPLIT semantics): SPLIT.1. if the top stack item is ?, pop off ? items until reaching a non-? item; emit DEDENT for each popped ? SPLIT.2. otherwise, emit SAME -- Given this, I suspect we can also express <* *> in terms of the indentation stack. Sincerely, AmkG ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ Readable-discuss mailing list Readable-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/readable-discuss