どう書く?.orgにまた投げた

お題は:LL Golf Hole 2 - 文字列に含まれる単語の最初の文字を大文字にする
http://ja.doukaku.org/comment/6947/
僕にはgolfは無理。
以下は、こんな簡単な問題でも悪戦苦闘してしまう自分の情けなさの記録
ちなみに、hipeがonであることを今日まで意識してなかった。

Erlang (BEAM) emulator version 5.6.3 [source] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.6.3  (abort with ^G)
1> F=fun([H|T])->string:to_upper(H)++T end.
#Fun<erl_eval.6.13229925>
2> join(F(string:tokens("fdsafasfdafda dsfa ds LL", ' ')),' ').
** exception error: bad argument
     in function  lists:member/2
        called as lists:member(102,' ')
     in call from string:tokens1/3
3> string:tokens("fsaf fdas", ' ').
** exception error: bad argument
     in function  lists:member/2
        called as lists:member(102,' ')
     in call from string:tokens1/3
4> string:tokens("fsaf fdas", " ").
["fsaf","fdas"]
5> join(F(string:tokens("fdsafasfdafda dsfa ds LL", " ")),' ').
** exception error: undefined function shell_default:join/2
6> join(F(string:tokens("fdsafasfdafda dsfa ds LL", " "))," ").
** exception error: undefined function shell_default:join/2
7> F.
#Fun<erl_eval.6.13229925>
8> F("Kaa").
** exception error: bad argument
     in operator  ++/2
        called as 75 ++ "aa"
9> G = fun([H|T]) -> string:to_upper(H) ++ T end.
#Fun<erl_eval.6.13229925>
10> G("Kaa").
** exception error: bad argument
     in operator  ++/2
        called as 75 ++ "aa"
11> G("K").
** exception error: bad argument
     in operator  ++/2
        called as 75 ++ []
12> string:to_upper("a").
"A"
13> G1 = fun([H|T]) -> [string:to_upper(H)] ++ T end .
#Fun<erl_eval.6.13229925>
14> G1("ass").
"Ass"
15> G2=fun([H|T])->[string:to_upper(H)]++T end .
#Fun<erl_eval.6.13229925>
16> G2("bss").
"Bss"
17> string:join(G2(string:tokens("sfa fdsa sssfds", " "))," ").
"SFA fdsa sssfds"
18> string:join(list:map(G2,string:tokens("sfa fdsa LL sss"," "))," ").
** exception error: undefined function list:map/2
19> string:join(lists:map(G2,string:tokens("sfa fdsa LL sss"," "))," ").
"Sfa Fdsa LL Sss"
20> string:join(lists:map(G2,string:tokens("LL day and night"," "))," ").
"LL Day And Night"
21> string:join(lists:map(fun([H|T])->[string:to_upper(H)]++T end,string:tokens("LL day and night"," "))," ").
"LL Day And Night"

はてなのシンタックスハイライト記法はErlangでも結構やるね。エラーメッセージも適切に捌いてくれるのはありがたい。