R12B0的文档里面写着:
6.6 Function Calls
ExprF(Expr1,...,ExprN)
ExprM:ExprF(Expr1,...,ExprN)
ExprM should evaluate to a module name and ExprF to a function name or a fun.
When including the module name, the function is said to be called by using the fully qualified function name. This is often referred to as a remote or external function call. Example:
lists:keysearch(Name, 1, List)
The module name can be omitted, if ExprF evaluates to the name of a local function, an imported function, or an auto-imported BIF. Then the function is said to be called by using the implicitly qualified function name. Examples:
handle(Msg, State)
spawn(m, init, [])
To avoid possible ambiguities, the fully qualified function name must be used when calling a function with the same name as a BIF, and the compiler does not allow defining a function with the same name as an imported function.
Note that when calling a local function, there is a difference between using the implicitly or fully qualified function name, as the latter always refer to the latest version of the module. See Compilation and Code Loading.
If ExprF evaluates to a fun, only the format ExprF(Expr1,...,ExprN) is correct. Example:
Fun1 = fun(X) -> X+1 end
Fun1(3)
=> 4
Fun2 = {lists,append}
Fun2([1,2],[3,4])
=> [1,2,3,4]
For code replacement of funs to work, the tuple syntax {Module,FunctionName} must be used to represent the fun.
分享到:
相关推荐
源代码中可能包含`net_adm`和`erlang`模块的用例,用于节点的连接和通信,以及`rpc`模块的使用,展示如何远程调用其他节点上的函数。 通过深入研究这些源代码,你将能更全面地理解Erlang语言及其在并发、分布式系统...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时系统而开发。它的设计灵感来源于Prolog,因此在处理并发性和容错性方面表现出色,尤其适合构建高可用性、高并发性的分布式...
为了简单使用,请编译tracer.erl并与您的程序一起将tracer.beam添加到Erlang的代码加载路径中。 并指定要跟踪和跟踪模式的模块: global或local ,这意味着要跟踪的全局或局部函数调用,然后启动程序,在要结束分析...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在深入理解Erlang程序设计第2版的附书代码之前,我们先来了解一下Erlang的基本概念和特性。 1. **并发与并行**:Erlang...
本文将详细探讨如何在`Erlang`中调用`Java`代码,特别是在`YAWS`应用中调用`J2EE`方法。 首先,`Erlang`调用`Java`的主要工具是`Jinterface`,这是一个`Erlang`的标准库,它提供了与`Java`交互的接口。`Jinterface`...
Erlang是一种面向并发的、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、容错性强的分布式系统。《Erlang程序设计》这本书,作者是Joe Armstrong,他是Erlang语言的主要开发者之一,...
ERLANG是一种为并发、分布式和容错系统设计的函数式编程语言,因其在实时系统和大规模并发处理中的优秀性能而被广泛应用于游戏服务器开发。这份压缩包包含了这两款游戏的Erlang服务器源码,为深入理解游戏服务器的...
1.完成makefile,直接运行/script目录中的makefile.cmd就能编译文件 2.完成启动多节点的脚本,运行/script目录中的run.cmd可以启动3个节点,...3.完成跨节点函数的调用,记录日志都会在gm节点中执行 4.完成日志记录系统
Erlang B星寻路算法源代码 B*寻路算法源代码, 由C++改写而来。效率是A星算法的几十倍到上百倍。做为服务端怪物寻路的最佳选择。
通常,开发者会在新版本的代码中实现`code_change/3`函数,这是一个关键组件,用于处理从旧版本到新版本的数据转换。该函数接收旧状态、旧版本号和新版本号作为参数,返回新状态。当进程因热代码替换而重启时,`code...
该函数调用了kmp_search_递归函数,并通过kmp_next函数生成部分匹配表(NextList),然后在递归的过程中使用这个表来决定下一步的比较位置。 2. kmp_search_递归函数:这是实际执行匹配过程的函数,它通过递归的...
5. **模块和函数**:Erlang的模块化设计有助于组织代码,函数是代码的基本执行单元。 6. **错误处理和监控**:Erlang提供了丰富的错误处理机制,如异常处理和过程监视,以及一套完整的监督和恢复机制。 7. **...
erlang并发编程实战源代码erlang并发编程实战源代码
6. **模式匹配**:Erlang的函数调用允许模式匹配,使得解构复杂数据结构变得简单,提高了代码的可读性和可维护性。 课后习题的实践价值: 1. **理解基本语法**:通过解决课后习题,学习者可以熟悉Erlang的基本语法...
例如,用户可以创建一个模块,定义一个函数来实现某个计算任务,然后在 Erlang Shell 中调用该函数来实现任务。 4. 编译和运行 在 Erlang 中,用户需要编译模块然后才能运行。编译模块可以使用 c() 函数,例如 c...
4. **切换版本**:使用`code:replace/2`函数进行代码切换,这个过程会将所有依赖于旧版本的进程安全地引导到新版本。 在实际应用部署中,开发者通常会结合Erlang的释放(release)管理工具,如`systools`和`reltool...
- NIFs允许Erlang代码调用外部函数,这些函数由其他语言实现,通常用于性能优化。 - NIFs可以提高计算密集型任务的效率,但必须谨慎处理,因为它们可能会破坏Erlang的进程隔离和错误恢复机制。 2. **Rustler介绍*...
2. Erlang-Java桥接库:为了方便Java与Erlang的交互,可能存在使用如Jinterface这样的库,它允许Java程序直接调用Erlang函数,或者通过Erlang的Port机制进行通信。 总结,这个项目展示了如何利用Erlang强大的并发和...
在MATLAB中实现Erlang B计算器,可以利用其内置的数学函数和循环结构,将Erlang B公式转化为可执行的代码。Erlang B公式为: \[ B(N, \lambda) = \frac{\lambda N}{N + \lambda} \] 其中,N表示服务通道数,λ表示...
Erlang是一种面向并发的、动态类型的编程语言,主要用于构建高可用性、容错性和分布式系统。这个压缩包包含的是Erlang的部分源代码,尽管可能不完整,但仍然能够提供对Erlang语言实现机制的深入了解。 1. **Erlang...