Re: List difference using patterns and substitutions.
- To: mathgroup at smc.vnet.net
- Subject: [mg71347] Re: [mg71306] List difference using patterns and substitutions.
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Wed, 15 Nov 2006 06:44:29 -0500 (EST)
- References: <200611141006.FAA06710@smc.vnet.net>
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
- References:
- List difference using patterns and substitutions.
- From: "Nacho" <ncc1701zzz@gmail.com>
- List difference using patterns and substitutions.