Write language name in 3D ASCII: Difference between revisions

(→‎{{header|Erlang}}: add 3D ASCII)
Line 953:
__/ |
|___/
</pre>
 
 
'''3D ASCII:'''
{{trans|Elixir}}
<lang erlang>-module(ascii3d).
-export([decode/1]).
 
decode(Str) ->
Splited = re:split(Str, "(\\d+)(\\D+)", [{return,list},group,trim]),
Fun = fun([_,N,S]) -> {Num,_} = string:to_integer(N), lists:duplicate(Num, S) end,
Joined = string:join(lists:flatmap(Fun, Splited), ""),
Lines = binary:replace(binary:list_to_bin(Joined), <<"B">>, <<"\\">>, [global]),
io:format("~s~n", [Lines]).</lang>
{{out}}
<pre>
1> c("ascii3d.erl").
{ok,ascii3d}
2> Str = "1 11_10 2_1\n1/B2 8_1B8 1/B B\n2B 1B7_1/7 3 B1\n3 B7_6 3_3B 3 6_2 2_2 4_4 6_1\n2 2B 1 6_1B4 1/ 3_3B 1 / 4_1 B/B B/ 2_1 B2 1/ 4_1 B\n2 3 B5_1/3 1/B B2_1/B2 B1/B B2_1/3B 1 /_2/B B2_1/B B\n3 3 B8_3B 1 5 B1_B/ 8 B1_B/ B\n4 2 B10_1B B_B3 2B B_3_1/2B_B 2B B_3_1/B B\n6 1B/10_1/B/_/4 1B/_/B/3_2/B/_1/2 1B/_/B/3_1/2B 1B\n55 3_1B/2 1)\n54 1/B5_1/\n54 1B/4_1/\n".
"1 11_10 2_1\n1/B2 8_1B8 1/B B\n2B 1B7_1/7 3 B1\n3 B7_6 3_3B 3 6_2 2_2 4_4 6_1\n2 2B 1 6_1B4 1/ 3_3B 1 / 4_1 B/B B/ 2_1 B2 1/ 4_1 B\n2 3 B5_1/3 1/B B2_1/B2 B1/B B2_1/3B 1 /_2/B B2_1/B B\n3 3 B8_3B 1 5 B1_B/ 8 B1_B/ B\n4 2 B10_1B B_B3 2B B_3_1/2B_B 2B B_3_1/B B\n6 1B/10_1/B/_/4 1B/_/B/3_2/B/_1/2 1B/_/B/3_1/2B 1B\n55 3_1B/2 1)\n54 1/B5_1/\n54 1B/4_1/\n"
3> ascii3d:decode(Str).
___________ __
/\ ________\ /\ \
\ \ \_______/ \ \ \
\ \ \_______ ___\ \ \ ______ __ ____ ______
\ \ ______\ / ___\ \ \ / ____ \/\ \/ __ \ / ____ \
\ \ \_____/ /\ \__/\ \ \/\ \__/\ \ \ /_/\ \/\ \__/\ \
\ \ \________\ \ \ \ \ \ \ \_\/ \ \ \ \ \ \ \ \_\/ \
\ \__________\ \_\ \ \_\ \____/\_\ \_\ \ \_\ \____/\ \
\/__________/\/_/ \/_/\/___/\/_/\/_/ \/_/\/___/\ \ \
___\/ )
/\_____/
\/____/
 
ok
</pre>
 
Anonymous user