From: Tim Bradshaw on 15 Apr 2010 11:28 On 2010-04-15 15:03:21 +0100, Raffael Cavallaro said: > On a more practical note, Tim, you might want to pick up a copy of > Wolfram's magnum opus _A New Kind Of Hygiene_ where he shows you how to > use cellular automata to do explicit renaming. Heh, I was given a second-and copy of that (well, not that, but another book of a similar name) by someone who had found it unreadable, and, well, it's sad really. All that work, and to what end?
From: fortunatus on 15 Apr 2010 12:29 On Apr 15, 11:28 am, Tim Bradshaw <t...(a)tfeb.org> wrote: > ... All that work, and to what end? Cellular automata are clearly important for your clothing problem. In fact here is the solution: A1K4D2J3F5K3S6L3D3K2M1F2K5E2J4A2S3K4D2J5F4K6A3J2S2K1D2L1F0 Now construct your T-shirt. Wear it proudly around town, don't worry if it seems barely visible, we know it's there. <Your slaves at work!>
From: Pillsy on 15 Apr 2010 12:44 On Apr 14, 5:13 pm, Tim Bradshaw <t...(a)tfeb.org> wrote: [...] > I mean, if you think CL has problems with macro hygene, you ought to > see Mathematica. And hygene problems are some minute fraction of the > ailments it suffers from. It's sort of amazing, isn't it? It's like the language was intentionally designed to thwart any attempts to have a hygienic macro. You don't have quasi-quotation, and the various things you can try to use like an ersatz form of quasi-quotation simply don't work right. The built-in scoping operators like Module, Function and RuleDelayed will "helpfully" rewrite their body forms in a bogus attempt to automatically enforce hygiene and/or fake lexical scoping. And that's just the stuff that's blatantly broken, and leaves aside more subtly broken bits like the gensyms that aren't actually gensyms. Nine times out of ten, the best you can do in a "macro" (they're closer to FEXPRs, but whatever) is something like this: Attributes[FakeTable] = {HoldAll} FakeTable[expr_, {var_, rangeArgs__}] := Function[Block[{var = #}, expr] It'll work just like a limited version of Table in most circumstances. The exceptions will provide you with hours of fun. Really, the fact the various Hold* attributes look like they could be used to implement control structures macro-style is a trap. WRI wants to punish you for knowing Lisp. It's the only explanation. Cheers, Pillsy
From: Robert Dodier on 16 Apr 2010 18:50 On Apr 14, 3:13 pm, Tim Bradshaw <t...(a)tfeb.org> wrote: > the kind of tinkering-with-applied-maths that I do in my spare time Well, if you're interested, give Maxima a try --- if you have problems with the language itself, there is some hope it can be revised: you only have to convince about a half dozen people (a dozen at the outside) that it's a good idea. Much simpler than revising either a commercial product or something defined by a bureaucracy. The opinions of well-informed outsiders are very valuable to Maxima. Feel free to join the party. FWIW Robert Dodier
From: Tim Bradshaw on 17 Apr 2010 13:20 On 2010-04-16 23:50:16 +0100, Robert Dodier said: > > Well, if you're interested, give Maxima a try --- > if you have problems with the language itself, there is > some hope it can be revised: you only have to convince > about a half dozen people (a dozen at the outside) that > it's a good idea. Much simpler than revising either a > commercial product or something defined by a bureaucracy. Is Maxima essentially the same thing as Macsyma? I would try it if I was more serious, but for my casual use Mathematica's interface is actually quite good - it reminds me a lot of the Symbolics presentation system in a way, though it is not as easy to use. (So yes, in case it's not clear, I was just whining in the original article...)
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 Prev: Question about LLA: how to access a lisp-array Next: format and base 36 numbers |