[erlang-questions] how do I make print_area work
Roelof Wobben
r.wobben@REDACTED
Sun Aug 9 18:12:55 CEST 2015
At first sight that print_area is not in the export.
But even then the sentence "the area is " is not printed.
And sorry for beging a rookie who tries very hard to learn erlang.
Roelof
Op 9-8-2015 om 18:05 schreef Garrett Smith:
> Roelof, these questions are very basic and you're running the risk of
> getting some RTFM responses.
>
> Take a look at the current source:
>
> https://gist.github.com/gar1t/7bb80d728f804554ac32
>
> What's different there?
>
> On Sun, Aug 9, 2015 at 11:02 AM, Roelof Wobben <r.wobben@REDACTED> wrote:
>> Hello,
>>
>> I have this code from another topic on this list.
>>
>> %% @author Roelof Wobben <r.wobben@REDACTED>
>> %% @doc Function to calculate the area of a rectangle
>> %% @reference from <a href=
>> "http://shop.oreilly.com/product/0636920025818.do" >Introducing Erlang</a>,
>> %% O'Reilly Media, Inc., 2012.
>> %% @copyright 2012 by R.WObben
>> %% @version 0.1
>>
>> -module(ask_area).
>>
>> -export([area/0]).
>>
>> print_area() ->
>> try area() of
>> Area -> io:format("The area is ~p~n", [Area])
>> catch
>> error:Err -> io:format("~s~n", [error_msg(Err)])
>> end.
>>
>> area() ->
>> Shape = shape_from_user(),
>> {X, Y} = dimensions_from_user(Shape),
>> geom:area(Shape, X, Y).
>>
>> shape_from_user() ->
>> Prompt = "R)ectangle, T)riangle, or E)llipse > ",
>> char_to_shape(prompt_user(Prompt)).
>>
>> prompt_user(Prompt) ->
>> strip_lf(io:get_line(Prompt)).
>>
>> strip_lf(Str) ->
>> string:strip(Str, right, $\n).
>>
>> char_to_shape("R") -> rectangle;
>> char_to_shape("r") -> rectangle;
>> char_to_shape("T") -> triangle;
>> char_to_shape("t") -> triangle;
>> char_to_shape("E") -> ellipse;
>> char_to_shape("e") -> ellipse;
>> char_to_shape(_) -> error(bad_shape).
>>
>> dimensions_from_user(rectangle) ->
>> numbers_from_user("width", "height");
>> dimensions_from_user(triangle) ->
>> numbers_from_user("base", "height");
>> dimensions_from_user(ellipse) ->
>> numbers_from_user("major axis", "minor axis").
>>
>> numbers_from_user(XPrompt, YPrompt) ->
>> X = number_from_user(XPrompt),
>> Y = number_from_user(YPrompt),
>> {X, Y}.
>>
>> number_from_user(Name) ->
>> Prompt = ["Enter ", Name, " > "],
>> to_positive_number(prompt_user(Prompt)).
>>
>> to_positive_number(Prompt) ->
>> positive_number(to_number(Prompt)).
>>
>> positive_number(N) when N > 0 -> N;
>> positive_number(_) -> error(bad_number).
>>
>> to_number(Str) ->
>> try_number([fun list_to_float/1, fun list_to_integer/1], Str).
>>
>> try_number([Method|Rest], Arg) ->
>> try
>> Method(Arg)
>> catch
>> error:badarg -> try_number(Rest, Arg)
>> end;
>> try_number([], _Arg) ->
>> error(bad_number).
>>
>> error_msg(bad_shape) -> "Please enter a valid shape";
>> error_msg(bad_number) -> "Please enter a positive number".
>>
>>
>> How can I make it work so print_area is used ?
>>
>> Roelof
>>
>>
>> ---
>> Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
>> https://www.avast.com/antivirus
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
---
Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
https://www.avast.com/antivirus
More information about the erlang-questions
mailing list