Re: Re: Re: Set in Scan
- To: mathgroup at smc.vnet.net
- Subject: [mg22056] Re: [mg22008] Re: [mg21900] Re: [mg21856] Set in Scan
- From: Hartmut Wolf <hwolf at debis.com>
- Date: Fri, 11 Feb 2000 02:38:40 -0500 (EST)
- Organization: debis Systemhaus
- References: <200002100725.CAA05624@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Dear Tomas, what I wrote this morning .... Hartmut Wolf schrieb: > .... > > Or the somewhat more obfuscated > > Scan[Evaluate, > Scan[((#[[3]] = If[#[[3]] < 0.5, "-XXX-", "-YYY-"])& > @Unevaluated[#])&, > Unevaluated /@ Unevaluated[{v1, v2, v3}]]] > > no Hold attributes in. This even works when you replace the outer Scan > (to get the replaced elements evaluated) by Map although the inner Scan > doesn't return anything. > I guess this is neither a bug nor any intended use (of Map), but a > consequence of the requirement that repeated Scans should be possible. > This example at least is an argument that they should! > .....was a little bit too "obfuscated" (to myself, I confess) And what I had talked about that second Scan (or Map) is pure nonsense. It simply does nothing, as I had explained before. I somehow tricked myself into that error, having not restored {v1,v2,v3} after an experimentation with Hold, tjaaa ... In[1]:= {v1, v2, v3} = {{0.308624, 0.0113816, 0.452114, 0.100156}, {0.368705, 0.44588, 0.878839, 0.736246}, {0.71764, 0.18652, 0.667573, 0.338795}}; In[2]:= Scan[((#[[3]] = If[#[[3]] < 0.5, "-XXX-", "-YYY-"]) &@Unevaluated[#]) &, Unevaluated /@ Unevaluated[{v1, v2, v3}]] In[3]:= {v1, v2, v3} Out[3]= {{0.308624, 0.0113816, "-XXX-", 0.100156}, {0.368705, 0.44588, "-YYY-", 0.736246}, {0.71764, 0.18652, "-YYY-", 0.338795}} Another possibility would be In[4]:= {v1, v2, v3} = {{0.308624, 0.0113816, 0.452114, 0.100156}, {0.368705, 0.44588, 0.878839, 0.736246}, {0.71764, 0.18652, 0.667573, 0.338795}}; In[5]:= Scan[((#[[3]] = If[#[[3]] < 0.5, "-XXX-", "-YYY-"]) &[#]) &, Unevaluated /@ Unevaluated /@ Unevaluated[{v1, v2, v3}]] In[6]:= {v1, v2, v3} Out[6]= {{0.308624, 0.0113816, "-XXX-", 0.100156}, {0.368705, 0.44588, "-YYY-", 0.736246}, {0.71764, 0.18652, "-YYY-", 0.338795}} Each application removes one level of "Unevaluated". Kind regards, Hartmut
- References:
- Re: Re: Set in Scan
- From: "Tomas Garza" <tgarza@mail.internet.com.mx>
- Re: Re: Set in Scan