[erlang-questions] syntax errror on :

Roelof Wobben r.wobben@REDACTED
Sat Aug 8 13:03:05 CEST 2015


Hello,

I try to find a solution for this etude : 
http://chimera.labs.oreilly.com/books/1234000000726/ch05.html#CH05-ET01

So far I have this :

%% @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(geom51).

-export([area/0]).

%% @doc ask the user for which shape the area
%% must be calculated.
%% Choices are :
%% c or a C for a circle
%% e or a E for a ellipse
%% t or a T for a triangle

-spec(area() -> char() ).

area() ->
     io:format("Which shape must the area be calculated?~n"),
     io:format(" R. Rectangle ~n"),
     io:format(" T. Triangle~n"),
     io:format(" E. Ellipse~n"),
     Answer = io:get_line("Your choice?  "),

     Value = hd(Answer),
     char_to_shape(Value).

%% @doc convert the choice to a Shape and send the
%5 data to the dimension function
%% when the choice is a  :
%% r or a R then the shape will be a rectangle
%% t or a T then the shape will be a triangle
%% e or a E then the shape will be a ellipse

-spec(char_to_shape(char() ) -> atom() ).

char_to_shape(Char) ->
     case Char of
         $R -> get_dimension(rectangle);
         $T -> triangle;
         $E -> ellipse;
         $r -> rectangle;
         $t -> triangle;
         $e -> ellipse;
         _Else -> "Wrong Shape"
     end.

-spec(get_dimension( atom() ) -> number() ) .

%% @doc Calculates the area of a shape, given the
%% shape and two of the dimensions. Returns the product
%% of its arguments for a rectangle, one half the
%% product of the arguments for a triangle, and
%% math:pi times the product of the arguments for
%% an ellipse.

get_dimension(Shape)->
     case Shape of
         rectangle ->
             Answer1 = io:get_line("What is the length of the 
rectangle?  "),
             {Test, _} = string:to_float(Answer1),
                      case Test of
                          error -> Test2 = string:to_integer(Answer1),
                          case  Test2 of
                              error -> io:write("the input schould be a 
number");
                              _Else -> Test2 = Test
                          end
                      end
     end


but now I see these error message :

geom51.erl:72: syntax error before:
geom51.erl:42: function get_dimension/1 undefined
geom51.erl:51: spec for undefined function geom51:get_dimension/1

geom51.erl:72: syntax error before:
geom51.erl:42: function get_dimension/1 undefined
geom51.erl:51: spec for undefined function geom51:get_dimension/1

anyone who knows how to solve this one ?

Roelof









---
Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
https://www.avast.com/antivirus




More information about the erlang-questions mailing list