In Scala, you can think of a string as a sequence of characters. In reality, in most Scala implementations, strings are actually implemented by the hosting platform (e.g. on the JVM, strings are actually JVM Strings and on Scala.js, they are actually ECMAScript strings), but there are usually some implicit conversions and possibly some compiler trickery as well to make them look like they are native Scala types and implement all the native Scala collection APIs.
So, a list of strings is really two collections nested inside each other, and you can flatten these nested collections out to a single collection using the flatten method:
list.flatten
//=> List(S, c, a, l, a, c, o, m, b, i, n, e, s, o, b, j, e, c, t, -, o, r, i, e, n, t, e, d, a, n, d, f, u, n, c, t, i, o, n, a, l, p, r, o, g, r, a, m, m, i, n, g, i, n, o, n, e, c, o, n, c, i, s, e, h, i, g, h, -, l, e, v, e, l, l, a, n, g, u, a, g, e)
Now that you have a flat list, you can just use the count method to count the number of elements that satisfy a given predicate (i.e. a function from the element type to Boolean).
A nice feature of Scala's collections API is that Sets are actually predicates! I.e. a Set object is actually a function which tells you whether an element is a member of the Set.
If we combine those two features together, we end up with something like this:
val vowels = Set('a', 'e', 'i', 'o', 'u')
list.flatten.count(vowels)
//=> 32