MYERS的diff算法
最近想做前端js代码的增量下载,需要用到这个算法,看了一遍,为了加深理解,顺便翻译一下。
论文原文件下载: 链接(后边有的图我就忽略了,可以去pdf里边看)
以下为译文:
摘要
对于两个序列A、B,寻找其最长公共子序列的问题与寻找其最短编辑过程(从A到B)的问题一直被认为是一对对偶问题。本文证明了它们等价于在一个编辑图中找到最短/最长路径。基于这个观点,我们找到了一个简单的O(ND)时间与空间复…
最近想做前端js代码的增量下载,需要用到这个算法,看了一遍,为了加深理解,顺便翻译一下。
论文原文件下载: 链接(后边有的图我就忽略了,可以去pdf里边看)
以下为译文:
对于两个序列A、B,寻找其最长公共子序列的问题与寻找其最短编辑过程(从A到B)的问题一直被认为是一对对偶问题。本文证明了它们等价于在一个编辑图中找到最短/最长路径。基于这个观点,我们找到了一个简单的O(ND)时间与空间复…
用c实现了一个语言的解释器,包括词法分析、语法分析、解释执行。
https://github.com/nighca/lang
目前没有依赖第三方库。
特点包括
动态类型
函数式
支持闭包
垃圾回收(还没完成)
语法参考了Lisp,如
(\
($ a 1)
($
adda
(lamda
i
(+ i a)
)
)
($
…
如果有这样一个简单的事件实现:
function MyEvent(){
this.list = {};
}
MyEvent.prototype.bind = function(name, handler) {
(this.list[name] = this.list[name] || []).push(handler);
};
MyEvent.prototype.unbind = f…
有一天的城铁比往日晚到了了十多分钟,还有一天早上根本没有来,举着喇叭的工作人员在站口的高处使劲说着什么,我被人潮挤到离入站处隔了百米长队伍的地方。前方的人都在努力往更前方挤,更前方的靠在横栏上翘首以盼。身旁的穿黑色羽绒服的女人对着电话大声说,“我觉得自己被糊弄了!”然后四周的人挤得越发厉害,黑色羽绒服举着电话的手落下来捂住了包,“不过没关系,这不是第一次了。”
我后来听说那天好久都再没有列车来,…
对比两篇文章,判断是同一篇(更新内容)或是两篇&…
它的时间,脾气,耐心,能做的,终究有限的,本来也没人做的周全。
它偏要学了偶像,它执了心念,无缺的偶像,尽美的心念。于是重负了,紧绷了。于是自我了,沉寂了。喜不能泣,怒不能斥,痛不能言,言不可诳,性不可乱,乱不可形于色。于是如履春河,如步悬丝,纵是应付了,免不得日渐不支,精疲力竭了;然后失手了,摔落了,还要回头望冰河长索上未及消散的英姿,反复念或曾有的无私的宏伟的心愿,终了想来也必长叹奈何。
只…
最近“一个”看的还不少,牢骚也积得颇多了,寻机便发一下。
尤其是许多最后署了“xxx 青年作家...”的文章,最大的共同点便是一副不食人间烟火的口吻,我真的很受不了。
什么是“不食人间烟火”的口吻?我努力地总结概括一下:
邵毛毛说,新婚快乐。
嗯,我说,新婚快乐。
什么感觉?哇好深沉好淡定。是的…
对我来说,a标签的target属性,是众多功能单一,一看很熟很常用,其实不是很了解的html属性之一。
大部分时候的a都不需要带target,用到的场景无非是要在新标签页/窗口中打开的链接,加一个target="_blank"的属性。
<a href="..." target="_blank">...</a>
我觉得,其实了解到这,平时基本上够用了。我也确实好长时间,只是知…
此前经常遇到一个问题
npm install xxx -g
不带sudo会报权限的错误,只好每次都
sudo npm install xxx -g
但是很多人也知道,这样不是那么正确的,原因见此:http://howtonode.org/introduction-to-npm。尽管如此,一直到发现带了sudo无法安装spm包,不得不正视这个问题。当时的情形就是,不带sudo装不上,报错,权限…
我一直还挺喜欢鲁迅的小说,起码他说的故事很有趣,然后是实在的时代意义。“其实每一本书都应该有趣”,是吧。
不过受上学时候课本上三味书屋等文章的影响,长久都觉得鲁迅的散文、杂文应该是挺无聊的。事实证明,这是偏见嘛,其实颇有看点。
总的来说,鲁迅就是个喷子,而且是大喷子。怎么说?最常见的节奏是,
“A,你这样是不对的!”
“B,虽然你反对A,嗯,但是你也是不对的!”
“C,你居然喷我!你丫纯属扯淡。”