MathGroup Archive 2010

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

Search the Archive

Re: Overloading StringJoin

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109790] Re: Overloading StringJoin
  • From: gekko <pfalloon at gmail.com>
  • Date: Tue, 18 May 2010 02:00:36 -0400 (EDT)
  • References: <hsr8al$bev$1@smc.vnet.net>

On May 17, 9:12 pm, Mark Adler <mad... at alumni.caltech.edu> wrote:
> I use Join enough that I like to overload StringJoin to do it:
>
> Unprotect[StringJoin];
> x_List <> y_List := x~Join~y
> Protect[StringJoin];
>
> Then I can do this:
>
> {1, 2} <> {3, 4}
> {1, 2, 3, 4}
>
> Why doesn't Mathematica already do this?  It seem like an obvious use
> of <>.  Or is there a good reason that they don't do this, and
> therefore if I do, it makes me a bad person?
>
> Mark

This may work fine for your current needs, but what happens when you
actually need the StringJoin function? A more robust solution would be
to co-opt one of the infix operators that doesn't already do
something. e.g.

In[115]:= CirclePlus[lists__List] := Join[lists]
In[116]:= {1,2,3}\[CirclePlus]{4,5,6}
Out[116]= {1,2,3,4,5,6}

Check out the section "Operators without Built-in Meanings" in the
built-in help for other possibilities.

Cheers, P.


  • Prev by Date: Re: Overloading StringJoin
  • Next by Date: Handbook of Mathematical functions
  • Previous by thread: Re: Overloading StringJoin
  • Next by thread: Re: Overloading StringJoin