DVK*_*DVK 16 c++ lisp perl programming-languages
背景:19世纪德国考古学家海因里希施利曼当然以寻找和挖掘特洛伊城(一个真正的荷马特洛伊特洛伊考古遗址)的成功寻求而闻名.
然而,他就像一个令人惊讶的语言学习者一样出名- 在两年的时间里,他教自己流利的荷兰语,英语,法语,西班牙语,意大利语和葡萄牙语,后来继续学习七个,包括现代和古希腊.
他着名使用的方法之一是对已知文本进行比较,例如,用一种流利的语言书写一本书,用你想要学习的语言翻译一本书,然后并行查阅.(各种消息来源引用了施利曼使用的书作为圣经,或者,作为上述链接,一本小说).
现在,针对实际问题.
有没有人使用(或听说过)Schliemann学习新编程语言的方法?而不是立足于引用和教程斜塔例如,采取综合有点一套方案已知有实施类似/相同的算法,这两种语言高质量的代码,并通过比较他们学习?
我对应用这种方法的个人经验,或对已发表的内容的引用,或者可用于这种方法的代码库的存在感到好奇吗?
让我思考这个想法的是Project Euler和我在SO,C++,Perl和Lisp上看到的一些代码片段.
我希望Schliemann的方法工作得非常糟糕,因为创建一种新的编程语言的一个方面是引入新的话语对象和转移控制的新方法.在Schliemann比较两种文本的方法中,话语的对象总是相同的,只有用来谈论它们的语言是不同的.
例如,方法调度和继承本身就是新事物.所以,如果您了解Simula-67,您可以学习Java,甚至可以学习Smalltalk或C++.但你不可能学习Tcl或Scheme或ML或Diesel,因为单一继承和动态调度不存在.
同样地,如果你只见过C或C++,或者甚至是Pascal/Ada/Modula/Clu,那么没有什么能真正为你准备一流功能的力量和表现力.
另一个例子,如果一种语言(Perl)具有正则表达式,第二种(SNOBOL)具有模式匹配,第三种(Icon)具有字符串扫描,如何将解决方案与字符串处理问题进行比较?你可怜的脑袋会爆炸!
如果所讨论的语言非常相似,Schliemann的方法可能有其用途.假设您了解Java并且您想学习C#,反之亦然.或者在OCaml/F#/ SML系列中更改语言.但在大多数情况下,我怀疑施利曼的方法对你有害无益.
Rosetta Code可能很有用.引用该网站: -
Rosetta Code是一个编程chrestomathy网站.我们的想法是以尽可能多的不同语言为同一任务提供解决方案,以展示语言是如何相似和不同的,并帮助一个人在一种方法中解决问题,从而学习另一种语言.Rosetta Code目前有372个任务,涵盖197种语言,但我们没有(也不能)为每种语言的每项任务提供解决方案.
| 归档时间: | 
 | 
| 查看次数: | 1502 次 | 
| 最近记录: |