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

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

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

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

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

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

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

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

没啥不对的,学吧

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 就是被这群人吹死的

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