どう書く?.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でも結構やるね。エラーメッセージも適切に捌いてくれるのはありがたい。