初识Erlang,Hello World(3)
by cnDenis 2013年3月15日
今天不只要对World说Hello,还要对别人说Hello
hw(Who) ->
io:format("Hello ~p ~n", [Who]).
平平无奇的一个函数,对Who说Hello
如果要对一组人说Hello,可以这么做:
hw10(L) ->
[hw(X) || X <- L].
hw10() ->
L = ["ali", "bob", "cat"],
hw10(L).
上面是用了列表解析的方法。
也可以用lists:map,效果和上面是一样的
hw11(L) ->
lists:map(fun hw/1, L).
hw11() ->
L = ["ali", "bob", "cat"],
hw11(L).
另一个很相似的做法是lists:foreach:
hw14(L) ->
lists:foreach(fun hw/1, L).
hw14() ->
L = ["ali", "bob", "cat"],
hw14(L).
这两种做法有什么区别呢?看看输出:
2> helloworld:hw11().
Hello "ali"
Hello "bob"
Hello "cat"
[ok,ok,ok]
10> helloworld:hw14().
Hello "ali"
Hello "bob"
Hello "cat"
ok
虽然map和foreach都是把同一个函数作用在列表的每一个元素上, map是会生成一个新的列表来存储结果并返回,(由于hw/1的值就是ok,所以会得到包含3个ok的列表) 而foreach仅会返回ok。
不使用Lists模块的话,可以这么做:
hw12([H|T]) ->
hw(H),
hw12(T);
hw12([]) ->
ok.
hw12() ->
L = ["ali", "bob", "cat"],
hw12(L).
这是Erlang中最常见的Head|Tail写法了吧。
也可以用case改写上面的函数
hw13(L) ->
case L of
[] -> ok;
[H|T] -> hw(H),
hw13(T)
end.
hw13() ->
L = ["ali", "bob", "cat"],
hw13(L).
相关推荐
【HelloWorld-main.zip】是一个包含了多种编程语言的“Hello, World!”程序源代码的压缩包。这个资源对于初学者来说非常有价值,因为它涵盖了从传统到现代的多种编程语言,可以帮助新接触编程的人快速理解每种语言的...
module HelloWorld (main) where main = putStrLn "Hello World!\n" ``` **解析:** - Haskell是一种纯函数式编程语言。 - `module`定义模块。 - `putStrLn`用于输出字符串。 #### Icon ```icon procedure main() ...
在"Erlang23_3"这个压缩包中,我们可以推测这包含了Erlang的第23个主要版本的第三个修订版。通常,软件版本号的格式是主版本号.次版本号.修订号,所以这里可能是Erlang的稳定版本。该版本可能包含性能优化、新功能、...
esl-erlang_23.0和rabbitmq-3.8.4windows版本 直接下载安装就行,可以直接下载就可安装,非常的方便...4. erlang安装后要检查能否编译成功一个helloworld文件。 5. rabbitMQ无法安装插件时非常有可能是erlang出问题了。
"RabbitMQ hello world源码"通常是指一个简单的示例,用于展示如何在RabbitMQ中发送和接收消息。这个例子可以帮助初学者快速理解RabbitMQ的基本工作原理和API使用。 **发送端(Producer)** 在RabbitMQ的"hello ...
在RabbitMQ的"Hello World"示例中,首先要做的是建立一个到RabbitMQ服务器的连接,并创建一个信道。信道是RabbitMQ中的工作线程,通过它我们实际执行发布和消费消息的操作。 ```csharp using RabbitMQ.Client; ...
**RabbitMQ系列(一)入门Helloworld** RabbitMQ是一种开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中的异步处理和解耦。在这个系列的第一部分,我们...
**运行程序**:启动Erlang Shell,并调用`helloworld:sayhello()`执行程序。 #### 三、TCP客户端实现 - **基本需求**:实现一个简单的TCP客户端,可以连接至Web服务器并显示服务器返回的数据。 - **实现过程**: ...
### 3. OTP(Open Telecom Platform) OTP是Erlang的开源框架,提供了一套标准库和设计模式,用于构建可维护、可扩展的应用。它包括行为(如GenServer、GenEvent和Supervisor)、应用和系统结构的指导原则,以及...
### Erlang VM (Erlang虚拟机)深入解析 #### Erlang简介 Erlang是一种通用、并发、强容错的编程语言,最初由爱立信公司开发,旨在解决电信系统的高并发、高可靠需求。它运行在Erlang虚拟机(Erlang Virtual Machine...
3. **环境变量**:安装过程中,安装程序可能会自动添加Erlang的bin目录到系统的PATH环境变量中,确保命令行可以识别`erl`等Erlang命令。 4. **验证**:安装完成后,打开命令行窗口并输入`erl`,如果Erlang成功安装,...
3. **编译Erlang**:进入解压后的目录,运行`./configure`命令来配置编译选项。这一步会检测你的系统环境并生成适合的Makefile。 4. **构建和测试**:执行`make`命令开始编译Erlang。这个过程可能需要一些时间,...
3. **错误处理与容错**:Erlang推崇“let it crash”哲学,鼓励程序在遇到错误时快速失败并重启,而不是尝试修复。书里可能会讨论如何构建健壮的系统,利用Erlang的故障隔离特性。 4. **分布式编程**:Erlang进程...
3. **错误修复**:Erlang22.1可能会包含一系列错误修复,确保代码的稳定性和可靠性。 4. **库和工具的更新**:OTP中的各种库(如Mnesia数据库、ERTS(Erlang Run-Time System)和其他并发工具)可能进行了升级,以...
Erlang/OTP 26.2.1,Erlang,OTP,26.2.1
3. 更换下载时间:避开网络高峰期进行下载。 4. 镜像站点:寻找Erlang的镜像站点,这些站点通常位于地理位置更近的地方,下载速度会更快。 标签中提到了“Erlang Rabbit 异步通讯”,这意味着讨论的重点是Erlang...
此时应看到控制台输出 `helloWorld`。 以上步骤展示了如何在Windows环境下安装配置Erlang及其开发工具,包括Eclipse和Erlide插件,并创建简单的Erlang项目及模块,最后演示了如何编译和运行Erlang程序。这将有助于...
6. **测试运行环境**:在 REPL 中,你可以尝试编写简单的 Erlang 代码,例如 `io:fwrite("Hello, World!\n")`,然后按 Ctrl+C 退出。 7. **获取帮助**:Erlang 提供了丰富的文档和在线资源,包括官方手册、Erlang/...
3. **热代码更新**:Erlang支持运行时代码替换,无需停止服务即可更新和修复应用程序,这在实时系统中非常有用。 4. **容错性**:Erlang的进程模型鼓励设计出可以失败并从中恢复的系统。当一个进程出错时,它不会...