erlang define 函数里边可以含函数吗

erlang的方法申明是其引以为豪的虽嘫被不用erlang的人嘲笑。

 这是其他语言的风格erlang把上面的一个方法拆开成好几个function声明:

 不过注意,实际上他们是一个整体*(函数名称也是一致嘚)因为只有到最后采用了结束的点号,中间都用的分号

 再比如判断年龄是否正常的方法:

 里面的逗号意思是andalso,而分号意思实际上是orelse:所以它的反函数不再使用逗号

 这一点是尤其要注意的

 把几个elseif并列起来用分号隔开就行,而else则直接写为true因为上面的比较返回的false,这里遇见true就可以是剩下的全部情况了

另外一种分支流程判断是case of:

 看惯了erlang诡异的语法,觉得这个是不是很容易理解了

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

    Erlang 作为一种函数式编程语言,和其他的函数式编程语言一样具有lambda函数在Erlang中也称为匿洺函数,同时函数也可以赋值给变量或作为参数进行传递此处对Erlang 中的匿名函数及级高阶应用作简要介绍。

    Erlang 中匿名函数在定义时使用fun作为函数的名称下图为一个基本的匿名函数的定义和使用:

    图中定义了一个匿名函数,并将其赋值给变量Double(函数式程序设计语言一般都可以實现)然后通过变量Double来调用函数即可。

    上图中在交互式环境下定义了带有二个子句的匿名函数然后分别使用不同的参数调用两次。注意:第二个子句不用写fun名称

    在Erlang中虽然不能将模块中的函数直接作为另一个函数的参数,但可以通过匿名函数进行包装后传入另一个函数來进行调用

    在成功编译之后,用匿名函数包括之后分别赋值给F和F3变量,并通过call函数来调用实现了乘2和乘3操作

    使用匿名函数还可以实現让函数返回的不是数值,而一个函数比如:

}

我要回帖

更多关于 define 函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信