Erlang中的fun函数使用详解
先看一个Erlang的规定:在Eralng中,同一个模块中的两个函数,如果她们同名但是它们的目(arity)不同,这样的两个函数被认为是完全不同的两个函数。通常情况下,这样的函数被用作辅助函数。
fun函数就是一个匿名函数(因为他自己没有名字),但就这个匿名函数,用处却是很大的。fun既可以作为函数的参数,也可以作为函数(或者自己本身fun)的返回结果。
现在,我们再来看一下fun函数的简单使用:
|
当我们定一个fun的时候,会出现 #Fun<erl_eval...>
之类的东西,我自己也不清楚,不过先不要管这个。我们继续往下看。
Triple = fun(X) -> 3*X end.
是定义一个fun,只有一个参数量,也就是只有一个目,在fun结束的时候,需要将end加在后面的。当我们要调用它的时候,直接使用Triple,然后加上参数就行了。
注:本博客的例子可能许多都是来自Joe Armstrong的《Erlang程序设计》一书,或者在原来基础上稍加改变。
我们再来详细的学习这个fun:
1.用fun作为函数的参数
上面的例子是只有一个参数,相信大家都能看懂。现在看一下使用多个参数时的情景。
|
很容易看懂吧,其中的math是一个模块,sqrt是其中的一个函数,是用来计算平方根的。
fun也可以有若干个不同的子句。
比如下面的星期转换:
|
2.以fun作为参数的函数
lists是标准库中的一个模块,从中导出的很多函数都是以fun作为参数的函数,比如,map,filter等。下面是一个测试:
|
在这个例子当中,map的第一个参数即为fun。
3.
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(4469) | 评论(0) | 转发(0) |
上一篇:第一个erlang程序
下一篇:erlang语言编辑环境的搭建
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
Erlang中的fun函数使用详解相关推荐
- python中subplot是什么意思_python matplotlib中的subplot函数使用详解
python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...
- python中mat函数_python matplotlib中的subplot函数使用详解
python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...
- python getopt_python 5种 statsPython中的getopt函数使用详解
函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args为需要解析的参数列表.一般使用sys.argv[1:],这样可以过滤掉 ...
- python explode_pandas dataframe 中的explode函数用法详解
在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数. 这个函数如下: Code # !/usr/ ...
- pythonsubplot_python matplotlib中的subplot函数使用详解
python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...
- python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...
- java中static修饰函数_详解java中static关键词的作用
在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...
- bootstraptable 加载完成回调函数_牛皮了!头一次见有大佬把「JavaScript中的回调函数」详解得如此清晰明了...
前言 callback,大家都知道是回调函数的意思.但是你对这个概念应该是模模糊糊.比如Ajax,你只知道去调用返回函数,如果对callback没有理解清楚,估计你在学习Node.js后会崩溃,因为c ...
- oracle中substr () in,Oracle中的substr()函数使用详解及应用
1.substr函数格式 (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a ...
- JavaScript中立即执行函数实例详解 转载 作者:李牧羊
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解.这篇文章 ...
最新文章
- 靠Python数据分析已赚10w的本科生,附赠学习资料
- 十三、深入Java的Scanner类
- Hibernate事实:始终检查Criteria API SQL查询
- 什么时候用synchronized
- 为什么公司宁愿花25K重新招人,也不愿花20K留住老员工?
- MIFARE系列6《射频卡与读写器的通讯》
- 汉诺塔计算移动次数和消耗体力
- eclipse设置工作空间编码为默认utf-8
- 原来歌这样唱也很好听
- c语言中文网pdf免费下载,C语言中文网VIP教程11.9.pdf
- 启动react项目报找不到文件的错误
- Win10 分页缓冲池 过大
- 历代治国理政者的教科书——金木水火土的起源之书:周朝的统治大法——《洪范》...
- 程序员编程技术迅速提高终极攻略
- 应届生职场入门毒打指南
- AI工程师认证,看这一篇就够了
- 航母级app横空出世 百事哈哈狂飙蓝海
- 重带电粒子的能量歧离(energy straggling)
- CVE-2021-1732:Windows Win32k提权
- Java之UML类图的六种关系
热门文章
- 洛谷 P1490 买蛋糕 解题报告
- cesium加载entity图片缩放_Vue中使用vuecroper插件实现图片上传裁剪并传到SpringBoot后台接口...
- 在 Linux 和 Windows 下给 Tomcat 分配大内存设置方法 - 偷得浮生半日闲 - 博客频道 - CSDN.NET...
- 设计模式---004策略模式---【巷子】
- python头像截取_身份证头像截取 - osc_8plez0fy的个人空间 - OSCHINA - 中文开源技术交流社区...
- 线程2--主线程(main线程)
- android手机图标 足球球星,C罗梅西最抢眼 足球巨星们都用什么手机
- JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
- java代码餐馆管理系统_java版餐饮管理系统
- 自然语言处理面试基础