MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

Re: eval / toliteral safety question



At 02:17 PM 6/11/96 PDT, Don Schwarz wrote:
>> For example, say you want to change "Xythian" to "HunkaHunkaBurningLove"
within
>> a string or a list of strings, or basically anywhere it exists within a
>> variable.  I could do some awkward recursive thing, or just:
>>   return eval("return " + strsub(toliteral(args[1]),
>>     "Xythian", "HunkaHunkaBurningLove", 1) + ";")[2];
>
>  {start, search, replace} = args;
>  return eval(tostr("return ", strsub(toliteral(start), toliteral(search),
>         toliteral(replace)), ";"))[2];

How about something a little more... umm... usual:

someobject:someverb this none this rx
"Usage:  $thisthing:thisverb(inputstuff, stuff-to-be-replaced,
stuff-to-be-replaced-with) => outputstuff";
if ((v = args[1]) == (o=args[2]))
  return args[3];
elseif (typeof(v) == LIST)
  n = args[3];
  for x in [1..length(v)]
    v[x] = this:(verb)(v[x], o, n);
  endfor
  return v;
else
  return v;
endif

- Kipp
http://radioactivo.com.mx/~paradigm




Home | Subject Index | Thread Index