Re: Tag List Protected error
- To: mathgroup at smc.vnet.net
- Subject: [mg113693] Re: Tag List Protected error
- From: Raffy <adraffy at gmail.com>
- Date: Mon, 8 Nov 2010 03:37:53 -0500 (EST)
- References: <ib5u05$c0j$1@smc.vnet.net>
On Nov 7, 2:11 am, niobe <ben.carb... at gmail.com> wrote: > Hi, > > I am trying to use ReplacePart in a function definition. The function > works using =, but not := > > newX= ReplacePart[x,{y[[1, 1]], y[[2, 1]]} -> x[[y[[1, 1]], y[[2, > 1]]]] - y[[2, 2]]] > > .. works > > update[x, y] := ReplacePart[ > x, > {y[[1, 1]], y[[2, 1]]} -> x[[y[[1, 1]], y[[2, 1]]]] - y[[2, 2]] > ] > .. SetDelayed::write: Tag List in <snip> is Protected. > > x and y are just integer lists. The problem seems to be Mathematica > trying to replace the head (List) of the rule in ReplacePart... even > though this is just correct syntax for replace part. > > I tried using RuleDelayed but no change. Many functions use rules in > their syntax so this must be a general issue I haven't come across > yet. > > cheers > > B The two arguments in the definition of update are not patterns: update[x, y] := ... Try: update[x_, y_] := ...