-3

我正在学习 Erlang,我正在尝试理解这个用作示例的代码。

-module(tutorial5).
-export([format_temps/1]).

format_temps(List_of_cities) ->
    convert_list_to_c(List_of_cities). 

convert_list_to_c([{Name, {f, F}} | Rest]) ->
    Converted_City = {Name, {c, (F -32)* 5 / 9}},
    [Converted_City | convert_list_to_c(Rest)];

convert_list_to_c([City | Rest]) ->
    [City | convert_list_to_c(Rest)];

convert_list_to_c([]) ->
    [].

我不确定如何使用这些方法来获得我需要的东西。我对此了解最多的是我应该能够形成一个城市列表及其温度,然后能够将它们的温度从华氏温度转换为摄氏度,反之亦然。任何帮助,将不胜感激。

4

1 回答 1

1

模块中唯一的可调用函数tutorial5format_temps/1(它需要一个参数)。它需要一个 city/temp 列表,其中每个 city/temp 是example形式的元组。该函数返回临时部分现在所在的城市/临时列表。来自 shell 的示例调用及其返回将是:{City,{f,Fahrenheit}}{berlin,{f,60}}{c,Celsius}

> tutorial5:format_temps([{berlin,{f,59}},{london,{f,50}},{stockholm,{f,50}}]).
[{berlin,{c,15.0}},{london,{c,10.0}},{stockholm,{c,10.0}}]

需要注意的几点是:

  • 在另一个模块中调用函数时,您必须始终包含模块名称
  • 以小写字母开头的单词是atom,带有名称的文字常量,而以大写字母开头的单词(来自我的文本)是variables。长相相似,却大相径庭。
于 2013-10-15T01:50:58.703 回答