我不是反对代码短,而是为了歪楼,讨论一下有没有可能通过运行需求文档来验证实现...
超过了(自然语言描述)需求的语义长度
不是的,自然语言充满了大量背景知识的假设,所以用 Prolog 会长过自然语言描述是很正常的。而且很多时候,长一点并不是大问题,歧义才是问题。
Perl 风格的正则表达式可以认为是一种特殊的 Prolog DSL。在处理简单的字符串匹配上比 Prolog 好也是可以预期的。
很多时候,感觉用类似 Prolog 的语言来表示需求还是蛮合适的,而且学习成本也不高。我没有说最终代码一定得用 Prolog 来写。而且之前看过一个 slide,也的确是有人这么做了。
http://www.erlang-factory.com/conference/SFBay2012/speakers/RichardCarlsson
hooopo 讲得不够好笑,还不如讨论搬家攻略...
写个老土的 SQL 供大家嘲笑
SELECT f1.follower_id AS follower_id
FROM followship AS f1
JOIN followship AS f2
ON f1.follower_id = f2.follower_id
WHERE
f1.user_id = ? AND
f2.user_id = ?
其实 Prolog
common_follower(A,B,C) :-
follower(A, C),
follower(B, C).
我是来歪楼的,非要用一个正则表达式也没啥大问题,尽管很多时候写成多个更容易。
我只是在想为啥需求文档不用 Prolog 或者类似的语言来写。假如需求文档不能运行,你如何验证你的实现能满足需求...
试着用 Prolog 写了下,感觉其实大部分还是很好理解的。
rule_3_to_15_characters(Name) :-
length(Name, L),
L >= 3,
L =< 15.
valid_character(C) :-
char_type(C, alpha),
char_type(C, lower).
valid_character(C) :-
char_type(C, digit).
valid_character(C) :-
member(C, "_-").
rule_valid_characters(Name) :-
maplist(valid_character, Name).
rule_start_with_alnum([C|_]) :-
char_type(C, alnum).
rule_have_non_digit_character(DomainName) :-
member(C, DomainName),
\+ char_type(C, digit).
valid_domain_name(DomainName) :-
rule_3_to_15_characters(DomainName),
rule_valid_characters(DomainName),
rule_start_with_alnum(DomainName),
rule_have_non_digit_character(DomainName),
!.
有啥理由非要用 MongoDB,你是高富帅就当我没说...
我不觉得监控有多少人在用是个好主意...
实战内容太少了点吧...
yum install
没看出来
我觉得有可能是被raw.github.com
带下水的?
被雷到了
编辑推荐 2013 运势大展望 32 人参加
期权回报多少和股价高低其实没啥关系啊。期权是看比如上市一年后的股价减去当前股价的差值,假如现在已经接近上市了,从某公司的历史情况来看,现在给你的期权,上市一年后,你应该是不会想要行权的...
https://www.google.com/finance?q=HKG%3A1688
Zoom 选 All 就看到了...
先把需求明确了吧
中文地址?
redis做主数据库
,这是啥应用 ...
为什么要读代码...