Erlang/Elixir 今天看到篇文章,我决定开始学 Elixir 了...

chiangdi · 2015年03月05日 · 最后由 bhuztez 回复于 2015年06月04日 · 5863 次阅读

http://mp.weixin.qq.com/s?__biz=MzA3NDM0ODQwMw==&mid=205850858&idx=1&sn=91fa4c01310f4fa65c7cf771ad45b7e6&scene=4#wechat_redirect

看起来很厉害的样子,大家分析下这篇文章有啥不对的地方。。

补充:他刚又发了一篇 评论 Elixir 的。

共收到 23 条回复

那不是好多语言都要学!!!

我知道屠龙术也挺厉害的,不知道去哪学

语言多了去了,打好基础用到什么学什么,如此最好

没啥不对的,学吧

python 的不对, 这么写结果就和 Elixir 一样了:

print string.upper(u"é")

还更快.

其实大小写转换这问题是语言相关的, 同一个字母的大写, 在不同语言里结果不一样... 正确的处理方法:

https://bugs.ruby-lang.org/issues/10085#change-48058

或者用 UnicodeUtils

所以说用Python的都赶紧换3吧。。。不会被bytes坑了……

Python的实现也是查表的。。。

他刚居然又发了一篇

not so bad

学吧~

"也就是说,要做上百万次的pattern matching,同时递归调用上百万次不同的函数,这效率会是什么个惨样?"


不知道“上百万次的pattern matching”是如何实现(及性能优化)的

楼主这是推广啊,你不是已经学了Elixir了吗

#10楼 @hhkbp2 上百万次的模式匹配是宏生成的啊,大概类似于 Ruby 里面可以利用 define_method 可以读取文件里的东西动态生成方法吧。至于性能为啥这么好,据说是 Erlang 虚拟机的那个 pattern matching engine 就是这么拽。

#5楼 @luikore #6楼 @Kabie Python 确实是可以转换,我没看过它的实现代码,但是正如作者所言,应该是用 C,再用了一些复杂的算法吧,但是 elixir 的实现明显更加简单粗暴啊。

#11楼 @yukihiro_matz 没有没有,不是推广,这个公众帐号也不是我的,至于 elixir 我也是才开始学。

#10楼 @hhkbp2 #12楼 @chiangdi 好像是Erlang VM会把模式匹配的转化为树的查询,效率比较高

我觉得还是请B大出来普及一下吧 @bhuztez

#15楼 @Tony612 #14楼 @chiangdi 若erlang vm的pattern matching实现为树查找 Python的dict实现为hash表 那么作者就是说“树查找”性能优于"hash表查找"? 求科普

#16楼 @hhkbp2 没有没有,就这个转换大小的函数而言,模式匹配的树查找是Erlang VM 的事,Python 那个 hash 表查找是需要自己写的,所以基本上在做人肉解释器。

#17楼 @chiangdi 欢迎加入elixir小家庭。。。有兴趣的话来qq群里聊天吧:249122869

#17楼 @chiangdi 是Erlang VM做还是程序员手写dict,从实现的角度看本质区别就是“树查找”和"hash表查找"吧

#19楼 @hhkbp2 5楼的说了, Python 的更快。

这个作者就是瞎吹。没写过几行Erlang就开始号称懂Erlang的思想了 ...

#21楼 @bhuztez B大说得对。。。

#22楼 @chiangdi 可是Erlang就是被这群人吹死的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册