Re: switch list elements, index from inside ??

• Subject: [mg2672] Re: [mg2644] switch list elements, index from inside ??
• From: hay%haystack at smc.vnet.net (Allan Hayes)
• Date: Mon, 4 Dec 1995 01:41:22 -0500
• Approved: usenet@wri.com
• Distribution: local
• Newsgroups: wri.mathgroup
• Organization: Wolfram Research, Inc.

```davep at newton.umsl.edu
in [mg2644] switch list elements, index from inside ??
writes

>I have a problem regarding the interchanging of list elements
(using >the routine posted by Richard Mercer)
>
>   t={1,2,3,4,5,6,7,8,9,10,11};
>   s[list_List]:=
>      ReplacePart[ReplacePart[list,list[[n]],m],list[[m]],n]//.

>         {m->Random[Integer,{1,10}],n->Random[Integer,{1,10}]}
>   s[t]
>
>Mma complains that the part and position specification (that's m
and >n) in ReplacePart is neither an integer nor a list of non zero
>integers.Why doesn't Mma accept the (Random-) Integers ?

The part ReplacePart[ReplacePart[list,list[[n]],m],list[[m]],n] is
evaluated before m and n are replaced by the integers generated.
You can use Unevaluated to prevent this:

t={1,2,3,4,5,6,7,8,9,10,11};
s[list_List]:=
Unevaluated[
ReplacePart[ReplacePart[list,list[[n]],m],list[[m]],n]
]//.{m->Random[Integer,{1,10}],n->Random[Integer,{1,10}]}

s[t]

{6, 2, 3, 4, 5, 1, 7, 8, 9, 10, 11}

Allan Hayes
hay at haystack.demon.co.uk

```

• Prev by Date: RE: MathLink
• Next by Date: Re: [Q] how fast is each machine with Mathematica ?
• Previous by thread: switch list elements, index from inside ??
• Next by thread: Re: switch list elements, index from inside ??