本来想着能够外包到汇丰里面工作的,谁知道,进入了汇丰的黑名单。因此每天在办公室坐等领工资。闲来没事,下载了一个Erlang学习,直到有人叫我去做项目。今天看了一整天的geting-start,也就写些内容在这里,做一下笔记。
我是用写字本慢慢按描述打的。然后使用Erlang的shell中使用c(moduleName)来进行编译的。
程序注释使用 %
变量大头字母必须要大写否则会出错。
语句结束是使用. 不是使用;
在Erlang中 {Element,Element}这种情况是算一个元素。
能够对于大括号的元素进行匹配的赋值.例如
{Head|Rest} = {1,2,3,4,5,6}
Head.
1
Rest.
{2,3,4,5,6}
R = {5}.
M = {Head|R}.
M.
{1,5}
下面是一个例子,显示数据,加上求最大值的。
-module(tut7). #这里是命名模块名称,文件名必须与这个名称相同
-export([format_temps/1]). #这个是对外声明可以使用的方法,方法名为#format_temps 参数个数为1
format_temps(List_of_cities) -> #这个是方法的定义,在使用->之前,可以使用#when对参数进行判断.
Converted_List = convert_list_to_c(List_of_cities),
print_temp(Converted_List),
{Max_city,Min_city} = find_max_and_min(Converted_List),
print_max_and_min(Max_city,Min_city).
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([]) -> [].
print_temp([{Name,{c,Temp}}|Rest]) ->
io:format("~-15w ~w c~n",[Name,Temp]),#使用了提供的module,io进#行了格式化的输出,其中 ~w对应后面的List中的元素,~n为换行
print_temp(Rest);
print_temp([]) ->
ok.
find_max_and_min([City|Rest]) ->
find_max_and_min(Rest,City,City).
find_max_and_min([{Name,{c,Temp}}|Rest],
{Max_Name,{c,Max_Temp}},
{Min_Name,{c,Min_Temp}})->
if
Temp>Max_Temp->
Max_City = {Name,{c,Temp}};
true ->
Max_City = {Max_Name,{c,Max_Temp}}
end,
if
Temp <Min_Temp ->
Min_City = {Name,{c,Temp}};
true ->
Min_City = {Min_Name,{c,Min_Temp}}
end,
find_max_and_min(Rest,Max_City,Min_City);
find_max_and_min([],Max_City,Min_City) ->
{Max_City,Min_City}.
print_max_and_min({Max_name,{c,Max_temp}},{Min_name,{c,Min_temp}}) ->
io:format("Max temperature was ~w c in ~w~n",[Max_temp,Max_name]),
io:format("Min temperature was ~w c in ~w~n",[Min_temp,Min_name]).
对于Erlang的阅读,我觉得会比较伤眼睛,而且逻辑思维敢比较强,感觉上方法总是递归调用。而且例子中的函数,总是会对空集给予考虑。
明天继续。
分享到:
相关推荐
【描述】虽然描述中没有具体的信息,但我们可以假设这是一个博主分享的关于Erlang学习的初步笔记,可能涵盖了基本语法、并发模型以及一些实用工具的使用。 【标签】"源码"和"工具"提示我们,这篇笔记可能包括了...
### Erlang学习笔记:深入解析Erlang编程与系统管理 #### 1. Erlang编程基础与资源 在深入探讨Erlang编程之前,我们首先需要了解一些基础资源和学习资料。Erlang官方网站([www.erlang.org](http://www.erlang.org...
- **列表**: Erlang中的列表是一种非常重要的数据结构。例如:`[1, 2, 3]` 是一个由三个元素组成的列表。 - **模式匹配**: 可以通过模式匹配来访问列表中的元素。例如:`[Head|Tail] = [1, 2, 3, 4, 5, 6].` 这里`...
Erlang是一种为构建大规模并发系统而设计的函数式编程语言。它的核心特性包括轻量级进程(processes)、消息传递和故障隔离。Erlang以其容错性和高可用性著称,广泛应用于电信、分布式系统和实时计算领域。 压缩包...
"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,旨在帮助初学者理解和掌握Erlang的核心概念和特性。 ### 1. 函数式编程基础 Erlang基于函数式编程范式,这意味着程序由纯函数构成,没有副作用。...
Erlang趣学指南是一本面向初学者的入门书籍,旨在帮助读者从零开始学习Erlang语言的基础知识和编程技巧。 这本书的作者Fred Hébert是一位在一线拥有丰富实战经验的工程师,他通过轻松幽默的文风和清晰的讲解,向...
的笔记和主要引用。 检查部分以查看我从哪里获取报价。 请注意,此 repo 始终在进行中。 (我还没找到时间完成这本书。) 话题 陷阱 erlang 没有null值这样的东西 每个函数都需要返回一些东西 erlang 不允许在函数中...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson于1986年开发,主要用于构建高可用性、分布式系统。Erlang的设计目标是支持大量并发连接,容错性强,易于编写实时系统。Erlang采用actor模型...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...
Erlang是一种面向并发的、基于actor模型的编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、容错性和可扩展性的分布式系统。在Web服务器领域,Erlang由于其天然的并发处理能力和强大的错误恢复...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...
Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件包含了Erlang程序设计第二版的...
Erlang/OTP 26.2.1,Erlang,OTP,26.2.1
这个压缩包包含了一个基于Erlang B公式的计算器程序,以及其源代码和实验报告,旨在帮助理解和应用这个公式。 Erlang B公式是由丹麦工程师A.K. Erlang提出的,用于预测在一个服务系统(如电话交换机)中有一定数量...
Erlang是一种面向并发的编程语言,因其在分布式系统和高可用性服务中的出色表现,常被用于构建消息队列如RabbitMQ这样的项目。本篇将深入探讨一个基于Erlang实现的简单聊天室源码,帮助初学者理解Erlang在构建实时...