最近在看《七周七语言》,适当了解一些C语言家族以外的编程语言也很有意思,下面记录一下各个语言的语法特点。
一,erl打开Erlang交互命令行
% 用百分号注释,语句用句号标志结束 % 变量必须是大写字母开头,只可赋值一次 > Name = "ciaos". "ciaos" > Name. "ciaos" % 符号首字母小写 > Color = red. red % 模式匹配经常使用 > Person = {person, {name, "ciaos"}, {age, 25}}. {person,{name,"ciaos"},{age,25}} > {person, {name, Name}, {age, Age}} = Person. {person,{name,"ciaos"},{age,25}} > Name. "ciaos" > Age. 25
二,函数/模块
% 动态类型,不必担心数据元素赋值是什么 % basic.erl -module(basic). -export([test/1]). test(0) -> 1; test(1) -> 1; test(Para) -> test(Para - 1) + test(Para - 2). % 进入erl运行如下 1> c(basic). {ok,basic} 2> basic:test(3). 3 % 函数赋值 > Negate = fun(I) -> -I end. #Fun<erl_eval.6.82930912> > Negate(-1). 1
三,控制结构
% case 模式匹配 > Animal = "dog". "dog" > case Animal of > "dog" -> wangwang; > "cat" -> miaomiao; > _ -> unknown > end. wangwang % if "哨兵" guard > X = 0. 0 > if > X > 0 -> positive; > X < 0 -> negative; > true -> zero > end. zero
四,列表操作(含匿名函数)
> Fibs = [1,1,2,3,5]. [1,1,2,3,5] > Double = fun(X) -> X * 2 end. #Fun<erl_eval.6.82930912> > lists:map(Double, Fibs). [2,2,4,6,10] > [Double(X) || X <- Fibs]. [2,2,4,6,10]
五,其他知识点
1,Erlang三种并发原语:“!”发送消息,spawn产生进程,receive接受消息
2,实现同步消息通讯
3,链接进程提升稳定性,热部署
总结:
1,构建可靠的分布式系统
2,轻量级,无共享资源的进程
3,OTP——企业级的库(容错性,可扩展性,热插拔)
相关推荐
### Erlang程序设计知识点...以上就是基于给定内容整理出的Erlang知识点总结。Erlang是一门非常强大且灵活的语言,尤其适合处理并发和分布式系统。通过掌握这些基本概念和高级特性,可以有效地利用Erlang解决实际问题。
**RabbitMQ 学习整理** RabbitMQ 是一个开源的消息代理和队列服务器,它基于 Advanced Message Queuing Protocol (AMQP) 实现,广泛应用于分布式系统中的消息传递。RabbitMQ 使用 Erlang 语言开发,具有高可用性、...
根据给定的文件信息,以下是对“redis整理笔记”中涉及的关键知识点的详细解析: ### Redis简介 **Redis**(Remote Dictionary Server)是一种开源的、高性能的键值存储系统,支持多种数据结构如字符串(String)...
Elixir是一种功能强大的、基于Erlang虚拟机(BEAM)的函数式编程语言,它以其并发性能、健壮性和简洁的语法而受到欢迎。Readability库利用了Elixir的这些特性,提供了高效且可靠的HTML解析能力。 HTML解析器是...
像一件简单的事情一样容易使用。 动画CSS 71338 咖啡脚本 名称 描述 作者 星星 1 用于日常写作的富文本编辑器 大本营 16256 镖 名称 描述 作者 星星 1 一个很棒的列表,其中包含最好的 Flutter 库、工具、教程、文章...
在网络爬虫项目中,为了高效地处理大量数据,也会采用快速排序算法来整理抓取的数据。 #### 六、总结 快速排序是一种高效的排序算法,其核心在于分治的思想。通过合理的选择基准元素和高效的分区操作,可以极大地...
这表明Node.js不仅用于开发简单的Web应用,还能够创建复杂的跨平台客户端,并且在作为中间层与前后端分离架构的应用中扮演关键角色。 接下来,文档中涉及了V8引擎的垃圾回收(GC)机制。V8是Node.js的底层...
3. **数据收集**:在分布式环境中,MQ特别适合用于收集和整理大规模的数据流,例如业务日志和用户行为数据,这些数据可以用于实时计算和大数据分析。 常见的MQ产品有多种,各有特点: - **ActiveMQ**:虽然早期...
这要求架构设计中要考虑到简单的组合原则,分离原则,简洁原则,吝啬原则,透明原则和健壮原则。这些原则帮助架构师设计出可扩展、易于管理和维护的系统。 在运维管理方面,邵海杨指出,架构师、开发人员和业务运营...
Elixir 是一种基于 Erlang VM(BEAM)的函数式编程语言,设计用于构建可扩展的并发系统,常用于分布式和实时系统。 在压缩包 "Walter3semestre-main" 中,我们通常可以期待找到一系列与 Elixir 编程相关的资源,...
2、开发注重交互的简单应用程序可以使用对话框为基础的窗口,如果文件读写简单这可利用CFile进行。 3、开发注重交互并且文件读写复杂的的简单应用程序可以利用以CFormView为基础视的单文档视结构。 4、利用对话框...