string function returns literal list

Q&A's, tips, howto's
Locked
sigipa
Posts: 6
Joined: Fri Jan 30, 2015 4:06 am

string function returns literal list

Post by sigipa »

Hello All,

When the string function is applied to a list, it returns a literal list. See code below.

(string '("a" "b" "c"))

This returns: ("a" "b" "c")

I expected it to return: "abc"

Is this working as intended? If so, is there another function that will return a string without the parens and quotes?

Thanks,
-S

steloflute
Posts: 13
Joined: Tue Nov 06, 2012 4:02 pm
Contact:

Re: string function returns literal list

Post by steloflute »

It is intended. See http://www.newlisp.org/downloads/newlis ... tml#string
Translates into a string anything that results from evaluating exp-1—. If more than one expression is specified, the resulting strings are concatenated.

Code: Select all

(string 'hello)          → "hello"
(string 1234)            → "1234"
(string '(+ 3 4))        → "(+ 3 4)"
(string (+ 3 4) 8)       → "78"
(string 'hello " " 123)  → "hello 123"
I suggest using apply as follows:

Code: Select all

> (apply string '("a" "b" "c"))
"abc"

sigipa
Posts: 6
Joined: Fri Jan 30, 2015 4:06 am

Re: string function returns literal list

Post by sigipa »

Hi,

Works perfectly. Thanks.

-S

kesha
Posts: 7
Joined: Tue Dec 04, 2012 9:11 pm

Re: string function returns literal list

Post by kesha »

Hi,
http://www.newlisp.org/downloads/newlis ... .html#join

Code: Select all

> (set 'MYLIST '("a" "b" "c"))
("a" "b" "c")
> (join MYLIST)
"abc"
> (join MYLIST "-")
"a-b-c"
> (join MYLIST (string "-" (join MYLIST) "-"))
"a-abc-b-abc-c"

Locked