execution model: Function vs. delayed execution
- To: mathgroup at smc.vnet.net
- Subject: [mg121327] execution model: Function vs. delayed execution
- From: Alan <alan.isaac at gmail.com>
- Date: Sat, 10 Sep 2011 07:30:29 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Reply-to: comp.soft-sys.math.mathematica at googlegroups.com
Warning: I am a Mathematica newbie and not a CS type, so my vocabulary may prove clumsy. I am used to a deferred execution model of function definition. Roughly, if I can write code that would be successfully executed outside a function definition, then I can make it a function body by appropriately "wrapping" it. In Mathematica, I can evaluate the following): x = {1,1,2} x=DeleteDuplicates[x]; x (Note: the redundancy is intentional.) Next, I attempt to "wrap" this as follows Clear[x] Function[x, (x=DeleteDuplicates[x];x)][{1,1,2}] This produces an error: Set::shape: "Lists {1,1,2} and {1,2} are not the same shape." Can you help me understand the execution model that leads to this? Thanks, Alan Isaac
- Follow-Ups:
- Re: execution model: Function vs. delayed execution
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: execution model: Function vs. delayed execution