WormyQuilt
WormyQuilt

Reputation: 31

SML - Concatenating strings in a list within a list

So I've got this list of lists of strings:

[["#@","**","#@"],["##","*%","##"]]

What I want to do is transform each inner list into a single string like this:

["#@**#@","##*%##"]

Resulting in a list of strings.

I've tried various combinations of map, foldr, and anonymous functions, but I can't for the life of me figure out how to achieve my desired result.

Upvotes: 0

Views: 1978

Answers (1)

Joomy Korkut
Joomy Korkut

Reputation: 514

There is a function concat : string list -> string in the String structure in the Basis Library, which happens to be at the top level. Therefore, you can define your function:

val concatEach = map concat

It is going to have type string list list -> string list, which I guess is what you are looking for.

If you want to define your own concat function, you can do it this way:

val myConcat = foldr (op ^) ""

Or, without using the op keyword:

val myConcat' = foldr (fn (x, y) => x ^ y) ""

Upvotes: 1

Related Questions