`
liumengfan
  • 浏览: 32813 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang的erl_eval

阅读更多
自己尝试使用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_win_64位安装包

    如果Erlang成功安装,将会启动Erlang的REPL(Read-Eval-Print Loop)环境,显示版本信息和提示符。 6. **开始编程**:现在你已经准备好使用Erlang了。可以使用文本编辑器编写`.erl`文件,并通过命令行编译和运行。...

    erlang 入门练习

    "ben.erl"文件很可能是一个简单的Erlang源代码文件,我们可以通过编辑器或Erlang的REPL(Read-Eval-Print Loop)环境来查看和运行这个程序。 首先,让我们了解一下Erlang的基本数据类型。Erlang的数据类型包括原子...

    erlang9.rar

    在使用Erlang进行开发时,了解Erlang的REPL(Read-Eval-Print Loop)是很有帮助的,通过erl命令启动,可以快速测试代码和调试问题。Erlang还有强大的模块系统,每个文件对应一个模块,模块内包含函数定义。 OTP库...

    erlang_server:卡牌游戏《萌兽堂》完整服务器erlang原始码

    8. **模块化设计**:Erlang鼓励模块化的代码组织,每个功能模块通常对应一个.erl文件,这样可以提高代码的可读性和可维护性。在《萌兽堂》服务器中,可能会有专门的模块负责用户认证、游戏逻辑、匹配算法等。 9. **...

    Erlang环境

    打开命令提示符,输入"erl"命令,如果成功安装,会看到Erlang的REPL(Read-Eval-Print Loop)界面,可以在这里编写和执行Erlang代码。 5. RabbitMQ与Erlang的关系: RabbitMQ是一个开源的消息代理和队列服务器,...

    rabbitmq,erlang安装包

    2. **验证Erlang安装**:安装完成后,打开命令行窗口,输入`erl`,如果能进入Erlang的REPL(Read-Eval-Print Loop)模式,说明Erlang已经成功安装。 3. **安装RabbitMQ**:接着,运行"rabbitmq-server-3.7.14.exe...

    RabbitMq3.85与erlang23的安装包.zip

    如果Erlang成功安装,你应该能看到Erlang的REPL(Read-Eval-Print Loop)界面。 3. **安装RabbitMQ**:接着,下载并安装rabbitmq-server-3.8.5.exe。同样地,按照安装向导指示进行。RabbitMQ的默认安装会自动配置...

    Erlang编写的生成一注双色球小程序

    使用Erlang shell(ERTS,Erlang Run-Time System)或者REPL(Read-Eval-Print Loop),开发者可以直接加载`shuangseqiu`模块并调用其函数进行测试和验证。例如,`c(shuangseqiu).`编译模块,然后`shuangseqiu:...

    Erlang 24.0 Linux

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。...此外,学习Erlang的REPL(Read-Eval-Print Loop)和模块化编程也是提升开发效率的重要环节。

    mmake:优化Erlang多核编译 Erlang compiler optimization of multi process

    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." ...

    otp_src_21.2.tar.gz

    安装完成后,可以通过`erl`命令来验证Erlang是否成功安装。如果一切顺利,你应该能看到Erlang的REPL(Read-Eval-Print Loop)界面。 RabbitMQ是一个基于AMQP(Advanced Message Queuing Protocol)的消息代理,它...

    rabbitmq-linux-3.7.19.zip

    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_win64_23.0

    OTP(Open Telephony Platform,开放电信平台)是Erlang编程...安装完成后,可以通过命令行工具验证Erlang版本,例如运行`erl`进入REPL(Read-Eval-Print Loop)并使用`erlang:system_info(version)`来查看版本信息。

    kjell:Erlang Shell

    Erlang Shell,通常被称为REPL(Read-Eval-Print Loop),是Erlang编程语言的一个重要组成部分。它提供了一个交互式的环境,允许程序员运行Erlang代码、测试功能、调试程序以及探索语言特性和库模块。在深入探讨...

    Elixir程序设计语言221

    #Function<6.12345678/2 in :erl_eval.expr/5> iex> add.(1, 2) 3 管道操作符 管道操作符 (`|>`) 用于将数据从一个函数的输出传递到另一个函数的输入。它简化了代码的可读性: iex> number = 10 10 iex> number |>...

    eric:Erlang IRC 客户端

    埃里克 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

    rabbitMQ安装文件

    3. **验证**:安装完毕后,打开命令行终端,输入`erl`,如果成功,将会进入Erlang的REPL(Read-Eval-Print Loop)环境。 **RabbitMQ的安装步骤:** 1. **下载**:访问RabbitMQ官网...

    recvbench:gen_tcp

    $ erl - pz ebin deps /*/ ebin + K true - eval 'application:start(recvbench).' % % TCPサーバ側(データ受信側) > recv_passive : start_accept ( 3000 ). % passiveモード(gen_tcp:recv/3を使ってデータ受信)で...

    appender

    文件附加器 通过文件路径附加字符串。 建造 在本地编译并运行。...$ erl -pa ebin -eval " application:start(appender) " 原料药 要将字符串附加到文件,请在控制台中运行: $ data:add(FilePath, String).

Global site tag (gtag.js) - Google Analytics