MathGroup Archive 2006

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

Search the Archive

Re: List difference using patterns and substitutions.


On 14 Nov 2006, at 19:06, Nacho wrote:

> Hello.
>
> I'm trying to figure how can I build a difference list from another
> using only patterns and rule substitutions.
>
> The idea is to get from a list, another, one element shorter, where
> each value is the substraction of two consecutive elements in the
> original list, that is, from {1,2,3,5,5} get {1,1,2,0}.
>
> I've been thinking about it for a while, and I know several methods
> using a more traditional programming style (with For, for example),  
> but
> I have no idea if it is possible to make it simple and fast with rule
> substitutions.
>
> Any idea?
>
> Thanks in advance.
>

Rules and substitutions are not the best approach in this case. Built- 
in functions are.
You can do it using just a single built-in function:

ListConvolve[{1,-1},{1,2,3,5,5}]

{1,1,2,0}

or slightly longer (but perhaps easier to understand) code:


Most[(RotateLeft[#]-#)&[{1,2,3,5,5}]]


{1,1,2,0}

Andrzej Kozlowski



  • Prev by Date: Define a matrix function with size as argument
  • Next by Date: Re: List difference using patterns and substitutions.
  • Previous by thread: Re: List difference using patterns and substitutions.
  • Next by thread: Re: List difference using patterns and substitutions.