Max Alekseyev on Tue, 08 Jul 2014 02:18:14 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: concat([]) |
Btw: ? [] == 0 %8 = 1 ? [] == "" %9 = 0 Should the latter be also 1? Regards, Max On Mon, Jul 7, 2014 at 8:14 PM, Max Alekseyev <maxale@gmail.com> wrote: > Hi Jack, > > I believe the general purpose of concat() is to concatenate vectors, > while strings are viewed as a special type of vectors (of characters). > From this perspective, the default type of concat result is 'vector', > unless it is specifically asked to concatenate strings (in which case > result type is 'string'). > That's why I think concat([]) should not be much different from > > ? concat([[]]) > %3 = [] > > Regards, > Max > > > On Mon, Jul 7, 2014 at 7:23 PM, Jack Brennen <jfb@brennen.net> wrote: >> Or should it be "" ? >> >> "ab" <- concat(["a","b"]) >> "a" <- concat(["a"]) >> "" <- concat([]) >> >> I guess it's ambiguous, so it is rejected? >> >> Note that concat() has some serious weirdnesses >> when you mix strings with other types... >> This is version 2.5.5 behavior: >> >> ? concat(["",1,x,y]) >> %1 = "1xy" >> ? concat([1,x,y,""]) >> %2 = "[1, x, y]" >> ? concat([[],x,y,""]) >> %3 = "[x, y]" >> ? concat([[],x,y,[]]) >> %4 = [x, y] >> ? concat(["",x,y,[]]) >> %5 = "xy[]" >> >> It seems as if it progresses using non-string-based concatenation >> until it finds a string, at which point it converts the result >> so far to a string and then continues? >> >> >> >> >> >> On 7/7/2014 3:34 PM, Max Alekseyev wrote: >>> >>> ? concat([]) >>> *** at top-level: concat([]) >>> *** ^---------- >>> *** concat: domain error in concat: vector = [] >>> *** Break loop: type 'break' to go back to GP prompt >>> >>> >>> Should it simply return [] ? >>> >>> Regards, >>> Max >>> >>> >>> >>