`
okafor2010
  • 浏览: 5156 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
最近访客 更多访客>>
社区版块
存档分类
最新评论

Erlang自学笔记(一)

阅读更多
   本来想着能够外包到汇丰里面工作的,谁知道,进入了汇丰的黑名单。因此每天在办公室坐等领工资。闲来没事,下载了一个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 学习笔记1

    【描述】虽然描述中没有具体的信息,但我们可以假设这是一个博主分享的关于Erlang学习的初步笔记,可能涵盖了基本语法、并发模型以及一些实用工具的使用。 【标签】"源码"和"工具"提示我们,这篇笔记可能包括了...

    erlang学习笔记

    ### Erlang学习笔记:深入解析Erlang编程与系统管理 #### 1. Erlang编程基础与资源 在深入探讨Erlang编程之前,我们首先需要了解一些基础资源和学习资料。Erlang官方网站([www.erlang.org](http://www.erlang.org...

    erlang 笔记

    - **列表**: Erlang中的列表是一种非常重要的数据结构。例如:`[1, 2, 3]` 是一个由三个元素组成的列表。 - **模式匹配**: 可以通过模式匹配来访问列表中的元素。例如:`[Head|Tail] = [1, 2, 3, 4, 5, 6].` 这里`...

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    Erlang是一种为构建大规模并发系统而设计的函数式编程语言。它的核心特性包括轻量级进程(processes)、消息传递和故障隔离。Erlang以其容错性和高可用性著称,广泛应用于电信、分布式系统和实时计算领域。 压缩包...

    erlang编程 Introducing Erlang

    "Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,旨在帮助初学者理解和掌握Erlang的核心概念和特性。 ### 1. 函数式编程基础 Erlang基于函数式编程范式,这意味着程序由纯函数构成,没有副作用。...

    erlang趣学指南

    Erlang趣学指南是一本面向初学者的入门书籍,旨在帮助读者从零开始学习Erlang语言的基础知识和编程技巧。 这本书的作者Fred Hébert是一位在一线拥有丰富实战经验的工程师,他通过轻松幽默的文风和清晰的讲解,向...

    java版商城源码-hello-erlang:Erlang的笔记和例子

    的笔记和主要引用。 检查部分以查看我从哪里获取报价。 请注意,此 repo 始终在进行中。 (我还没找到时间完成这本书。) 话题 陷阱 erlang 没有null值这样的东西 每个函数都需要返回一些东西 erlang 不允许在函数中...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    Erlang23_3.zip

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson于1986年开发,主要用于构建高可用性、分布式系统。Erlang的设计目标是支持大量并发连接,容错性强,易于编写实时系统。Erlang采用actor模型...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang9.rar

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入...

    Erlang官网下载过慢

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...

    erlang写的一个特别的web服务器

    Erlang是一种面向并发的、基于actor模型的编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、容错性和可扩展性的分布式系统。在Web服务器领域,Erlang由于其天然的并发处理能力和强大的错误恢复...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    Erlang 20.3linux安装包

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...

    xiandiao_erlang_Erlang课后习题_

    Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件包含了Erlang程序设计第二版的...

    Erlang/OTP 26.2.1

    Erlang/OTP 26.2.1,Erlang,OTP,26.2.1

    Erlang B公式计算器

    这个压缩包包含了一个基于Erlang B公式的计算器程序,以及其源代码和实验报告,旨在帮助理解和应用这个公式。 Erlang B公式是由丹麦工程师A.K. Erlang提出的,用于预测在一个服务系统(如电话交换机)中有一定数量...

    erlang聊天室源码

    Erlang是一种面向并发的编程语言,因其在分布式系统和高可用性服务中的出色表现,常被用于构建消息队列如RabbitMQ这样的项目。本篇将深入探讨一个基于Erlang实现的简单聊天室源码,帮助初学者理解Erlang在构建实时...

Global site tag (gtag.js) - Google Analytics