Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
53
Task/Mad-Libs/Erlang/mad-libs-1.erl
Normal file
53
Task/Mad-Libs/Erlang/mad-libs-1.erl
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
-module(madlib).
|
||||
-compile(export_all).
|
||||
|
||||
main() ->
|
||||
main([]).
|
||||
|
||||
main([]) ->
|
||||
madlib(standard_io);
|
||||
main([File]) ->
|
||||
{ok, F} = file:open(File,read),
|
||||
madlib(F).
|
||||
|
||||
madlib(Device) ->
|
||||
{Dict, Lines} = parse(Device),
|
||||
Substitutions = prompt(Dict),
|
||||
print(Substitutions, Lines).
|
||||
|
||||
prompt(Dict) ->
|
||||
Keys = dict:fetch_keys(Dict),
|
||||
lists:foldl(fun (K,D) ->
|
||||
S = io:get_line(io_lib:format("Please name a ~s: ",[K])),
|
||||
dict:store(K, lists:reverse(tl(lists:reverse(S))), D)
|
||||
end, Dict, Keys).
|
||||
|
||||
print(Dict,Lines) ->
|
||||
lists:foreach(fun (Line) ->
|
||||
io:format("~s",[substitute(Dict,Line)])
|
||||
end, Lines).
|
||||
|
||||
substitute(Dict,Line) ->
|
||||
Keys = dict:fetch_keys(Dict),
|
||||
lists:foldl(fun (K,L) ->
|
||||
re:replace(L,K,dict:fetch(K,Dict),[global,{return,list}])
|
||||
end, Line, Keys).
|
||||
|
||||
parse(Device) ->
|
||||
parse(Device, dict:new(),[]).
|
||||
|
||||
parse(Device, Dict,Lines) ->
|
||||
case io:get_line(Device,"") of
|
||||
eof ->
|
||||
{Dict, lists:reverse(Lines)};
|
||||
"\n" ->
|
||||
{Dict, lists:reverse(Lines)};
|
||||
Line ->
|
||||
parse(Device, parse_line(Dict, Line), [Line|Lines])
|
||||
end.
|
||||
|
||||
parse_line(Dict, Line) ->
|
||||
{match,Matches} = re:run(Line,"<.*?>",[global,{capture,[0],list}]),
|
||||
lists:foldl(fun ([M],D) ->
|
||||
dict:store(M,"",D)
|
||||
end, Dict, Matches).
|
||||
7
Task/Mad-Libs/Erlang/mad-libs-2.erl
Normal file
7
Task/Mad-Libs/Erlang/mad-libs-2.erl
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
68> madlib:main("test.mad").
|
||||
Please name a <noun>: banana
|
||||
Please name a <name>: Jack
|
||||
Please name a <he or she>: She
|
||||
Jack went for a walk in the park. She
|
||||
found a banana. Jack decided to take it home.ok
|
||||
69>
|
||||
Loading…
Add table
Add a link
Reference in a new issue