Solution 3-2
Here is a suggested solution for Étude 3-2.
geom.erl
%% @author J D Eisenberg <jdavid.eisenberg@gmail.com>
%% @doc Functions for calculating areas of geometric shapes.
%% @copyright 2013 J D Eisenberg
%% @version 0.1
-
module
(
geom
).
-
export
([
area
/
3
]).
%% @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. Ensure that both arguments are greater than
%% or equal to zero.
-
spec
(
area
(
atom
(),
number
(),
number
())
->
number
()).
area
(
rectangle
,
L
,
W
)
when
L
>=
0
,
W
>=
0
->
L
*
W
;
area
(
triangle
,
B
,
H
)
when
B
>=
0
,
H
>=
0
->
(
B
*
H
)
/
2
.
0
;
area
(
ellipse
,
A
,
B
)
when
A
>=
0
,
B
>=
0
->
math
:
pi
()
*
A
*
B
.
Get Études for Erlang now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.