自己尝试使用erl_eval做一些联系,发掘改模块的功能:
[root@dev-emp-com work]# erl
Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.1 (abort with ^G)
1> Binding1 = erl_eval:new_bindings().
[]
2> Binding2 = erl_eval:add_binding('A', 1, Binding1).
[{'A',1}]
3> Binding3 = erl_eval:add_binding('C', 2, Binding2).
[{'A',1},{'C',2}]
4> rel_eval:binding('A', Binding3).
** exception error: undefined function rel_eval:binding/2
5> erl_eval:binding('A', Binding3).
{value,1}
6> erl_eval:binding('B', Binding3).
unbound
7> erl_eval:bindings(Binding3).
[{'A',1},{'C',2}]
8> erl_eval:del_binding('A', Binding3).
[{'C',2}]
9> erl_eval:binding('C', Binding3).
{value,2}
10> erl_eval:bindings(Binding3).
[{'A',1},{'C',2}]
11> Binding4 = erl_eval:del_binding('A', Binding3).
[{'C',2}]
12> erl_eval:bindings(Binding4).
[{'C',2}]
13> {ok, Ts, _} = erl_scan:string("io:format(\"A is:~p~n\", [A]).").
{ok,[{atom,1,io},
{':',1},
{atom,1,format},
{'(',1},
{string,1,"A is:~p~n"},
{',',1},
{'[',1},
{var,1,'A'},
{']',1},
{')',1},
{dot,1}],
1}
14> {ok, Expr} = erl_parse:parse(Ts).
** exception error: no match of right hand side value
{error,{1,erl_parse,["syntax error before: ","':'"]}}
15> {ok, Expr} = erl_parse:parse_exprs(Ts).
{ok,[{call,1,
{remote,1,{atom,1,io},{atom,1,format}},
[{string,1,"A is:~p~n"},{cons,1,{var,1,'A'},{nil,1}}]}]}
16> erl_eval:exprs(Expr).
** exception error: undefined function erl_eval:exprs/1
17> erl_eval:exprs(Expr, Binding2).
A is:1
{value,ok,[{'A',1}]}
18>
分享到:
相关推荐
如果Erlang成功安装,将会启动Erlang的REPL(Read-Eval-Print Loop)环境,显示版本信息和提示符。 6. **开始编程**:现在你已经准备好使用Erlang了。可以使用文本编辑器编写`.erl`文件,并通过命令行编译和运行。...
"ben.erl"文件很可能是一个简单的Erlang源代码文件,我们可以通过编辑器或Erlang的REPL(Read-Eval-Print Loop)环境来查看和运行这个程序。 首先,让我们了解一下Erlang的基本数据类型。Erlang的数据类型包括原子...
在使用Erlang进行开发时,了解Erlang的REPL(Read-Eval-Print Loop)是很有帮助的,通过erl命令启动,可以快速测试代码和调试问题。Erlang还有强大的模块系统,每个文件对应一个模块,模块内包含函数定义。 OTP库...
8. **模块化设计**:Erlang鼓励模块化的代码组织,每个功能模块通常对应一个.erl文件,这样可以提高代码的可读性和可维护性。在《萌兽堂》服务器中,可能会有专门的模块负责用户认证、游戏逻辑、匹配算法等。 9. **...
打开命令提示符,输入"erl"命令,如果成功安装,会看到Erlang的REPL(Read-Eval-Print Loop)界面,可以在这里编写和执行Erlang代码。 5. RabbitMQ与Erlang的关系: RabbitMQ是一个开源的消息代理和队列服务器,...
2. **验证Erlang安装**:安装完成后,打开命令行窗口,输入`erl`,如果能进入Erlang的REPL(Read-Eval-Print Loop)模式,说明Erlang已经成功安装。 3. **安装RabbitMQ**:接着,运行"rabbitmq-server-3.7.14.exe...
如果Erlang成功安装,你应该能看到Erlang的REPL(Read-Eval-Print Loop)界面。 3. **安装RabbitMQ**:接着,下载并安装rabbitmq-server-3.8.5.exe。同样地,按照安装向导指示进行。RabbitMQ的默认安装会自动配置...
使用Erlang shell(ERTS,Erlang Run-Time System)或者REPL(Read-Eval-Print Loop),开发者可以直接加载`shuangseqiu`模块并调用其函数进行测试和验证。例如,`c(shuangseqiu).`编译模块,然后`shuangseqiu:...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。...此外,学习Erlang的REPL(Read-Eval-Print Loop)和模块化编程也是提升开发效率的重要环节。
erl -pa ebin -eval "case make:files(["src/mmake.erl"], [{outdir, "ebin"}]) of error -> halt(1); _ -> ok end" -eval "case mmake:all(8,[$(MAKE_OPTS)]) of up_to_date -> halt(0); error -> halt(1) end." ...
安装完成后,可以通过`erl`命令来验证Erlang是否成功安装。如果一切顺利,你应该能看到Erlang的REPL(Read-Eval-Print Loop)界面。 RabbitMQ是一个基于AMQP(Advanced Message Queuing Protocol)的消息代理,它...
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.19.rabbitmq37-generic-erlang$(erl -eval 'io:fwrite("~s~n", [erlang:system_info(otp_release)]).' -noshell)/rabbitmq-signing-key-...
OTP(Open Telephony Platform,开放电信平台)是Erlang编程...安装完成后,可以通过命令行工具验证Erlang版本,例如运行`erl`进入REPL(Read-Eval-Print Loop)并使用`erlang:system_info(version)`来查看版本信息。
Erlang Shell,通常被称为REPL(Read-Eval-Print Loop),是Erlang编程语言的一个重要组成部分。它提供了一个交互式的环境,允许程序员运行Erlang代码、测试功能、调试程序以及探索语言特性和库模块。在深入探讨...
#Function<6.12345678/2 in :erl_eval.expr/5> iex> add.(1, 2) 3 管道操作符 管道操作符 (`|>`) 用于将数据从一个函数的输出传递到另一个函数的输入。它简化了代码的可读性: iex> number = 10 10 iex> number |>...
埃里克 Erlang IRC 客户端 建造 $ make build ...erl -pa deps/*/ebin/ -pa ebin/ -eval "application:start(eric)" Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe
3. **验证**:安装完毕后,打开命令行终端,输入`erl`,如果成功,将会进入Erlang的REPL(Read-Eval-Print Loop)环境。 **RabbitMQ的安装步骤:** 1. **下载**:访问RabbitMQ官网...
$ erl - pz ebin deps /*/ ebin + K true - eval 'application:start(recvbench).' % % TCPサーバ側(データ受信側) > recv_passive : start_accept ( 3000 ). % passiveモード(gen_tcp:recv/3を使ってデータ受信)で...
文件附加器 通过文件路径附加字符串。 建造 在本地编译并运行。...$ erl -pa ebin -eval " application:start(appender) " 原料药 要将字符串附加到文件,请在控制台中运行: $ data:add(FilePath, String).