擬似lsの実装
Posted feedbacks - Erlang
ふつうに。 erl -noshell -s pls -s init stop ["bbb","ccc","ddd/"] ["eee"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -module(pls).
-export([start/0]).
start()->
PathList=["aaa/bbb","aaa/ccc","aaa/ddd/eee","bbb/ddd/eee"],
ls(PathList,"aaa/"),
ls(PathList,"aaa/ddd/").
ls(PathList,Target)->
erlang:display([addslash(string:tokens(string:substr(X,string:len(Target)+1),"/"))||X<-PathList,string:str(X,Target)=:=1]).
addslash([T,_N|_R])->
T++"/";
addslash([T]) ->
T.
|
ぜんぜんふつうにできてなかったー PathList=["aaa/bbb/ccc","aaa/bbb/ddd"] ls(PathList,"aaa/") >["bbb/","bbb/"] ...orz 以下、重複削除したもの。
1 2 | [put(addslash(string:tokens(string:substr(X,string:len(Target)+1),"/")),1)||X<-PathList,string:str(X,Target)=:=1],
erlang:display(get_keys(1)).
|




ところてん
#4212()
Rating1/3=0.33
[ reply ]