博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Erlang 0063] Joe Armstrong 《A Few Improvements to Erlang》EUC 2012
阅读量:6551 次
发布时间:2019-06-24

本文共 1304 字,大约阅读时间需要 4 分钟。

  EUC(Erlang User Conference)2012上Joe Armstrong的演讲主题是: 《A Few Improvements to Erlang》,很惊喜!!!因为Joe Armstrong提到的问题,我一直保持关注,而且他提到的前面两种方法我都实践过, : )
 
Note:下面的截图来自Joe Armstrong的演讲稿,下载地址: 

第一种方法:多加一个参数

当时解决问题的思路就是:"如果要达到我们的目标,
要把尾递归要执行的当前方法作为参数传进去"
 
我写的第一篇,没有好的思路纯粹是在Shell中试出来的:   (2012-03-24 22:08)

 

第二种方法:Y Combinator

第一种方法总是感觉怪异,主要是感觉语法噪音过多,于是一直关注寻找看是否有别的解决方案,找到了Y Combinator的方法
 
 
第二篇   (2012-04-28 12:08)
 

 

Erlang 未来的解决方案

通过引入一个新的关键字def(类似Haskell的define),新的解决方案将是下面这样的:
 

  
  Joe Armstrong紧接着解释了,上面解决方案只是表面现象,根源上这是由于 Forms and Expressions的分歧造成的:Erlang Shell是一个Expression计算器;而我们的erlang模块是有Form序列构成的,编译器会把这些Form序列编译成目标文件(object file).Forms和Expressions的差异见下图:
 

 
     换言之,在模块文件中和在Erlang Shell中的代码行为是不一致的,def的引入就是在语法层面做了小小的改动,让我们的Erlang代码在 shell, modules, and escript中表现尽量一致.这个目前依然在进行中的项目被Joe Armstrong成为 
erl2 地址:  之前总结微软.net framework演变历程的时候发现语言和框架发展日趋完善对项目级开发的各种支持也愈发完善,Erlang的这个变化应该也属于这一类.
 
 
按照Joe Armstrong的描述,erl2除了解决了上面的问题之外还提供了一种元编程的方式,来解决项目代码的各种定制,之前
What is Erlang II?
An erlang generator - running the command
erl2 File.erl2 creates one or more erlang modules.
Don’t mess with Erlang. Write a program that writes programs.
erl2 programs create erl1 programs
erl3 programs create erl2 programs
Metaprograming!
 
 不过我还是想发自心底的想问前辈:什么时候把Unicode的问题统一了啊?
 
更多精彩,点击这里:
 
[1] Joe Armstrong PPT 
[2] Joe Armstrong 演讲简介页 
[3] EUC 2012 演讲页 
 
看来要继续努力了,加油!

转载地址:http://fnfco.baihongyu.com/

你可能感兴趣的文章
Solr增量更新索引
查看>>
抵制克苏恩[Lydsy2017年4月月赛]
查看>>
MySql Study Notes
查看>>
6 - laravel 基础 - 视图与模板引擎
查看>>
团队第二次作业
查看>>
linux 查询当前文件夹下的目录数量
查看>>
【python】入门第一篇
查看>>
1682: [Usaco2005 Mar]Out of Hay 干草危机
查看>>
supersr--NSURLConnection iOS2.0苹果原生请求
查看>>
iphone-common-codes-ccteam源代码 CCPlistFileReader.h
查看>>
构造方法
查看>>
SQL效率之索引
查看>>
线性支持向量分类机及其实现
查看>>
Axure产品原型设计工具
查看>>
ASM文件系统
查看>>
ajax学习笔记(原生js的ajax)
查看>>
mysql 函数 事务
查看>>
1312 连续自然数和
查看>>
进程/线程介绍
查看>>
SPSS-Friedman 秩和检验-非参数检验-K个相关样本检验 案例解析
查看>>