MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Distribute

  • To: mathgroup at smc.vnet.net
  • Subject: [mg2817] Re: [mg2808] Distribute
  • From: Allan Hayes <hay at haystack.demon.co.uk>
  • Date: Wed, 20 Dec 1995 01:16:21 -0500

"Arnold Seiken" <SEIKENA at gar.union.edu>
>Subject: [mg2808] Distribute

Asks, amongst other things, about the following contrasting behaviour

(*1*)Distribute[Plus[{a,b,c}, {1,2,3}], List]

      {{1 + a, 2 + b, 3 + c}}

(*2*)Distribute[Plus[{a,b,c}, {1,2,3,4}], List]

      Thread::tdlen: Objects of unequal length in {a, b, c} + {1, 	
      2, 3, 4} cannot be combined.

      {1 + a, 2 + a, 3 + a, 4 + a, 1 + b, 2 + b, 3 + b, 4 + b,
      1 + c, 2 + c, 3 + c, 4 + c}


Explanation: the difference lies in the evaluation of the entries  
of Distribute, which is attempted before Distribute acts.

In (*1*), Plus adds the two lists of equal length to give

   Distribute[{1+a,2+b,3+c}, List]

      1 + a  2 + b  3 + c

You can use Unevaluated to stop Plus acting:

   Distribute[Unevaluated[Plus[{a,b,c}, {1,2,3}]], List]

      {1 + a, 2 + a, 3 + a, 1 + b, 2 + b, 3 + b, 1 + c, 2 + c, 3 + c}

In (*2*) the message tells us that Plus cannot add lists of unequal  
length, then the evaluation continues with them not added

Allan Hayes
hay at haystack.demon.co.uk




  • Prev by Date: Re: ParametricPlot3D
  • Next by Date: Programming
  • Previous by thread: Distribute
  • Next by thread: Function?