List 计算面积-Erlang

List 计算面积-Erlang,list,erlang,area,List,Erlang,Area,我有以下函数,它应该使用列表中的每个值计算面积 我遇到的问题是,该函数只打印列表中第一项的第一个结果,以及列表中每个项需要打印的内容 您可以认为列表中的每个项目都是一个案例,我想打印所有案例 area([H|_])->(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2; area([_|T])-> area(T). 你的递归错误了。应该做的是打印头部区域,然后在尾部递归。您还需要添加一个基本情况,以处理空列表 area([]) -&

我有以下函数,它应该使用列表中的每个值计算面积

我遇到的问题是,该函数只打印列表中第一项的第一个结果,以及列表中每个项需要打印的内容

您可以认为列表中的每个项目都是一个案例,我想打印所有案例

 area([H|_])->(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2;
 area([_|T])-> area(T).     

你的递归错误了。应该做的是打印头部区域,然后在尾部递归。您还需要添加一个基本情况,以处理空列表

area([]) -> ok;
area([H|T]) ->
  io:format("~p~n", [(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2]),
  area(T).
如果您希望得到一个区域列表,则可以执行以下操作:

area([]) -> [];
area([H|T]) ->
  [(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2 | area(T)].

你的递归错误了。应该做的是打印头部区域,然后在尾部递归。您还需要添加一个基本情况,以处理空列表

area([]) -> ok;
area([H|T]) ->
  io:format("~p~n", [(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2]),
  area(T).
如果您希望得到一个区域列表,则可以执行以下操作:

area([]) -> [];
area([H|T]) ->
  [(math:sqrt(3.0) * (H*H)) - (3.14 * (H*H))/2 | area(T)].