Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1995
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1995

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

Search the Archive

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 ??