lists:foreach
не возвращает значение, которое возвращает переданная ему функция.Он предназначен для использования с функциями, которые вызывают только побочные эффекты (например, печать).Вы ищете lists:map
.
1> Text = "foo bar baz".
"foo bar baz"
2> TextArray = string:split(Text, " ", all).
["foo","bar","baz"]
3> lists:join(" ", lists:map(fun(Element) -> string:titlecase(Element) end, TextArray)).
["Foo"," ","Bar"," ","Baz"]
. Кроме того, анонимную функцию можно сократить, используя синтаксис fun module:name/arity
:
4> lists:join(" ", lists:map(fun string:titlecase/1, TextArray)).
["Foo"," ","Bar"," ","Baz"]