Re: Delayed function does not behave as original input
- To: mathgroup at smc.vnet.net
- Subject: [mg97026] Re: [mg96992] Delayed function does not behave as original input
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 2 Mar 2009 05:23:43 -0500 (EST)
- References: <200903010956.EAA04324@smc.vnet.net>
- Reply-to: drmajorbob at bigfoot.com
Both sets of code do the same thing, here. close = {52.25`, 52.`, 52.01`, 52.06`, 52.14`, 52.45`, 52.06`, 51.89`, 52.06`, 52.05`}; dates = {{2009, 2, 26, 9, 30, 0}, {2009, 2, 26, 9, 31, 0}, {2009, 2, 26, 9, 32, 0}, {2009, 2, 26, 9, 33, 0}, {2009, 2, 26, 9, 34, 0}, {2009, 2, 26, 9, 35, 0}, {2009, 2, 26, 9, 36, 0}, {2009, 2, 26, 9, 37, 0}, {2009, 2, 26, 9, 38, 0}, {2009, 2, 26, 9, 39, 0}}; good = Partition[Riffle[close, dates, {1, -1, 2}], 2] {{{2009, 2, 26, 9, 30, 0}, 52.25}, {{2009, 2, 26, 9, 31, 0}, 52.}, {{2009, 2, 26, 9, 32, 0}, 52.01}, {{2009, 2, 26, 9, 33, 0}, 52.06}, {{2009, 2, 26, 9, 34, 0}, 52.14}, {{2009, 2, 26, 9, 35, 0}, 52.45}, {{2009, 2, 26, 9, 36, 0}, 52.06}, {{2009, 2, 26, 9, 37, 0}, 51.89}, {{2009, 2, 26, 9, 38, 0}, 52.06}, {{2009, 2, 26, 9, 39, 0}, 52.05}} dateDataMerge[datedata_, ordinatedata_] := Partition[Riffle[ordinatedata, datedata, {1, -1, 2}], 2]; bad = dateDataMerge[dates, close] {{{2009, 2, 26, 9, 30, 0}, 52.25}, {{2009, 2, 26, 9, 31, 0}, 52.}, {{2009, 2, 26, 9, 32, 0}, 52.01}, {{2009, 2, 26, 9, 33, 0}, 52.06}, {{2009, 2, 26, 9, 34, 0}, 52.14}, {{2009, 2, 26, 9, 35, 0}, 52.45}, {{2009, 2, 26, 9, 36, 0}, 52.06}, {{2009, 2, 26, 9, 37, 0}, 51.89}, {{2009, 2, 26, 9, 38, 0}, 52.06}, {{2009, 2, 26, 9, 39, 0}, 52.05}} bad == good True I suspect you had an earlier (buggy) definition of dateDataMerge and failed to Clear it before using the new (debugged) definition. That wouldn't matter if both signatures were the same or the new signature were more specific... but if the earlier definition had a MORE specific signature, like dateDataMerge[datedata_List, ordinatedata_List], it would take precedence over the newer, less specific signature. Bobby On Sun, 01 Mar 2009 03:56:34 -0600, <hayes.tyler at gmail.com> wrote: > Hello All: > > I am trying to make a simple function to Riffle two lists together for > a DateListPlot. I have attached an example below to show you what I am > trying to do. Clearly, I am missing something basic here, but cannot > seem to see what. > > EXAMPLE CODE > > close = {52.25`, 52.`, 52.01`, 52.06`, 52.14`, 52.45`, 52.06`, 51.89`, > 52.06`, 52.05`}; > > dates = {{2009, 2, 26, 9, 30, 0}, {2009, 2, 26, 9, 31, 0}, {2009, 2, > 26, 9, 32, 0}, {2009, 2, 26, 9, 33, 0}, {2009, 2, 26, 9, 34, > 0}, {2009, 2, 26, 9, 35, 0}, {2009, 2, 26, 9, 36, 0}, {2009, 2, > 26, 9, 37, 0}, {2009, 2, 26, 9, 38, 0}, {2009, 2, 26, 9, 39, 0}}; > > closedates = Partition[Riffle[close, dates, {1, -1, 2}], 2] > > Out[178]= {{{2009, 2, 26, 9, 30, 0}, 52.25}, {{2009, 2, 26, 9, 31, 0}, > 52.}, {{2009, 2, 26, 9, 32, 0}, 52.01}, {{2009, 2, 26, 9, 33, 0}, > 52.06}, {{2009, 2, 26, 9, 34, 0}, 52.14}, {{2009, 2, 26, 9, 35, 0}, > 52.45}, {{2009, 2, 26, 9, 36, 0}, 52.06}, {{2009, 2, 26, 9, 37, 0}, > 51.89}, {{2009, 2, 26, 9, 38, 0}, 52.06}, {{2009, 2, 26, 9, 39, 0}, > 52.05}} > > (* The above is what I want *) > > dateDataMerge[datedata_, ordinatedata_] := > Partition[Riffle[ordinatedata, datedata, {1, -1, 2}], 2]; > > closedatesbad = dateDataMerge[dates, close] > > During evaluation of In[180]:= Riffle::list: List expected at position > 1 in Riffle[52.25,2009,{1,-1,2}]. >> > > During evaluation of In[180]:= Riffle::list: List expected at position > 1 in Riffle[52.25,2009]. >> > > During evaluation of In[180]:= Riffle::argtu: Riffle called with 1 > argument; 2 or 3 arguments are expected. >> > > During evaluation of In[180]:= Riffle::list: List expected at position > 1 in Riffle[52.25,2,{1,-1,2}]. >> > > During evaluation of In[180]:= General::stop: Further output of > Riffle::list will be suppressed during this calculation. >> > > > END OF EXAMPLE CODE > > Any help is appreciated. > > Cheers, > > t. > -- DrMajorBob at bigfoot.com
- References:
- Delayed function does not behave as original input
- From: hayes.tyler@gmail.com
- Delayed function does not behave as original input