#14 楼 @blacktulip 不用 Erlang 怎么 OO?你的代码没啥问题,能改的最多就是把一个函数拆成两个函数。加更多 class 和是不是 OO 一点关系都没有。Design Pattern 的精髓其实是怎么给抽象的概念起形象的名字...
#7 楼 @blacktulip Ruby 类似
response = {
:ask: "Sure.",
:tell: "Whatever.",
:yell: "Woah, chill out!",
:silent: "Fine. Be that way!"
}
def hey(words)
response[type_of(words)]
end
WordsParser.new words
就是抽成一个函数吧,比如用 Erlang 可以这么写。
case type_of(Words) of
ask ->
"Sure.";
tell ->
"Whatever.";
yell ->
"Woah, chill out!";
silent ->
"Fine. Be that way!"
end
怎么就复杂了
所以不要录 screencast 啊。用 script 录终端,小错估计还能手工修正。录视频就太悲剧了,要改几乎就得重录啊
不支持 Erlang 啊
Erlang 也不是不可以,只是原生提供的方式比较 tricky 而已。而且,直接生成 beam 也不是不可以么。
http://www.erlang.org/doc/man/erl_id_trans.html
Erlang 语法的设计是相当好的,比很多语言都要好的多,要把 Erlang 的语法设计的很烂是一件非常难的事,Erlang 可是从 Prolog 演变过来的。说 Erlang 语法很烂的说明还没理解 Erlang。
#6 楼 @willmouse Elixir 也只是语法糖吧,语义上和 Erlang 目测不出有区别啊。