《Erlang程序设计》学习笔记-第3章 顺序型编程

本文详细介绍了Erlang的顺序型编程概念,包括函数定义、模式匹配、shell交互、目录切换方法,以及标点符号的使用。讲解了函数的目、匿名函数(fun)的使用、高阶函数、列表操作如map和filter,还涉及到了自定义for循环、导入和导出函数、列表解析等特性。此外,讨论了算术表达式、断言、记录的创建和使用,以及case和if表达式在控制流程中的作用。最后提到了列表处理的最佳实践和累加器的应用。
摘要由CSDN通过智能技术生成

第三章 顺序型编程

1. 一个函数以一些以分号隔开的子句组成,最后一条子句以句号结束,表示函数结束。每个子句都有一个函数头和函数体。函数头由函数名和随后的以括号括起来的模 式组成,函数体则由一系列表达式(表达式以逗号分隔)组成。调用时,如果函数头中的模式与调用参数匹配成功的话,其对应的表达式就会进行运算。模式将按照 它们在函数定义中的先后顺序进行匹配,匹配完一个子句后,不再匹配下一下了。
2. 模块可以在shell中用c(模块名)的方式进行编译,调用模块中的函数的方法是:模块名:函数(参数)。
3. 当对函数的调用不能匹配时,会抛出一个运行时错误。
4. 切换当前目录的方法:
    (1)在erlang的shell中:cd("相对目录名或绝对目录名"). pwd()会返回当前目录。
    (2)在erlang的安装目录下写一个名为.erlang的文件,erl的shell在启动时会前执行这个文件。文件中的内容如下:
      io:format("consulting .erlang in ~p~n", [element(2, file:get_cwd())]).   %% element(2, 元组)取元组的第2个元素。file:get_cwd() 获取当前目录名
      c:cd("c:/work").  %% c:的意思应该是在shell中执行一个命令。
      io:format("Now in:~p~n", [element(2, file:get_cwd())]).   %% 显示切换后的当前目录。
5. erlang中的标点符号:
    逗号(,)用来分隔函数调用、数据构造器以及模式中的参数。
    句号(.)(后跟一个空白符号,否则可能是浮点数的小数点)用来在shell中分隔完整的函数和表达式。
    分号(;)用来分隔子句,用到子句的情况:分段的函数定义、case语句、if语句、try...catch语句以及receive表达式。
    无论何时,我们只要看到一组后面跟有表达式的模式,都会使用分号进行分隔。
6. 函数的目就是它所拥有的参数的数量。同名不同目的函数是两个完全不同的函数,除了它们的名字恰巧相同外。同名不同目的函数一般可以用做辅助函数。

7. fun是匿名函数。Z = fun(X) -> 2*X end. 这里Z相当于这个匿名函数的指针。这个指针可以付给另外一个变量,如:Double = Z. 调用这个函数可以Double(4).。
8. fun与正常的函数一样,可以有多个参数,也可以有多个子句。只是要在最后加一个end.。多个子句的fun函数只在第一个子名处写fun,以下的子句的fun省略,最后一个子句不写分号(;),如:
    fun(X,Y) -> X*Y;
         (a,Y) -> a
    end.
9. fun函数可以做为参数传递给其它的函数(当然也包括fun函数本身),也可以做为函数的返回值。使用fun函数做为参数或返回fu

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值