Re: Add syntax highlighting to own command
- To: mathgroup at smc.vnet.net
- Subject: [mg101665] Re: Add syntax highlighting to own command
- From: earthnut at web.de (Bastian Erdnuess)
- Date: Tue, 14 Jul 2009 05:32:44 -0400 (EDT)
- References: <200907090600.CAA17547@smc.vnet.net> <h3766u$f9h$1@smc.vnet.net> <h3cfbl$ick$1@smc.vnet.net>
Simon <simonjtyler at gmail.com> wrote:
> Hi everyone,
>
> An interesting discussion!
> I've also on occasion wanted a similar construct, although the replace
> all inside the definition is, as Leonid says, clever, it just didn't
> sit well with me.
Yes, I also like Daniels and your second solution better.
> Ultimately using a Fold construct would be the nicest, but passing
> unevaluated arguments around isn't always so simple -- the following
> code works, but is definitely not pretty.
>
> ClearAll[Let]; SetAttributes[Let, HoldAll];
> Let[sp : {a__Set}, expr_] := Quiet[ReleaseHold@Fold[With[{#2}, #1] &,
> Hold@expr, Reverse[Hold /@ Unevaluated@sp]], With::"lvw"]
I understand that using the Fold construct should be the prefered way,
but this seems indeed to be a little bit to ugly for me.
> The simplest code I could come up with was the following:
>
> ClearAll[Let]; SetAttributes[Let, HoldAll];
> Let[{}, expr_] := expr
> Let[{a_, b___}, expr_] := With[{a}, Let[{b}, expr]]
I like this best. It's also Daniels solution. I think, I'm going to
use this code in MyToolBox. Thank you.
> the nice thing about it is that all of the error handling is passed
> through to With properly (just like Bastian's original code).
>
> Thanks Peter for pointing out the SyntaxInformation command, that's a
> handy one to know. Do you have any ideas how to get the syntax
> highlighting working properly as well? (the constructions in the
> documentation centre weren't very enlightening for this case).
Dito.
> Simon
>
> PS
> A quick google brought up this, very similar discussion
> <http://www.mathkb.com/Uwe/Forum.aspx/mathematica/15031/
A-version-of-With-that-binds-variables-sequentially>
> (it's scary how close my Fold construct is to the one that rych
> proposed...)
That's what I found because of
"Is there a way to get syntax highlighting for WithMany? I found the
SyntaxInformation stuff, but it doesn't seem to expose the
highlighting that's used for With, Module, or Block."
Bastian
- References:
- Add syntax highlighting to own command
- From: earthnut@web.de (Bastian Erdnuess)
- Add syntax highlighting to own command