我目前正在阅读 Toby Segaran 的一本名为“Programming Collective Intelligence”的好书(我强烈推荐)
代码示例都是用 Python 编写的,而且由于我今年已经学习了一种新语言(从 VB.net 毕业到 C#),所以我并不热衷于跳上另一条学习曲线。
这给我留下了将 python 示例翻译成 C# 的问题。
问题是:代码保留在 python 中有多重要?python中有没有我不能用普通的托管静态类型语言做的事情?
我目前正在阅读 Toby Segaran 的一本名为“Programming Collective Intelligence”的好书(我强烈推荐)
代码示例都是用 Python 编写的,而且由于我今年已经学习了一种新语言(从 VB.net 毕业到 C#),所以我并不热衷于跳上另一条学习曲线。
这给我留下了将 python 示例翻译成 C# 的问题。
问题是:代码保留在 python 中有多重要?python中有没有我不能用普通的托管静态类型语言做的事情?
您会发现的一个挑战是,不仅算法是用 Python 实现的,而且本书还广泛使用了 BeautifulSoup、Numpy、PIL 等 Python 库(参见附录 A)。
我怀疑有任何算法细节是你不能移植到另一种语言的,但是你会在练习中遇到困难。此外,要翻译代码,您至少必须学习一点 Python,不是吗?
我建议你潜入并学习 Python。如果您担心与 C# 项目的互操作性,可以使用 IronPython。
我建议将它们翻译成 C#。我一直在将第 2 章“建议”移植到 VB.Net。在此过程中,我正在学习 Python 作为一种副作用。Toby 用 Python 列表做了一些令人惊奇的事情。
处理额外的 Python 库是另一回事。Ndelicious 与 pyDelicious 非常接近,但它缺少一些关键功能(热门帖子!)。
你可以用所有图灵完备的语言做同样的事情。这是在 SQL 中呈现 Mandelbrot 分形的示例。例子表明:即使你可以使用任何语言,努力也会有所不同。
所以我的猜测是,由于 Python 如此灵活和开放,代码会变得更长。
这本书是关于算法的,而不是编程的细节,选择的语言只是为了让例子具体化。正如作者所说,“本书中的代码示例是用 Python 编写的……但我提供了所有算法的解释,以便其他语言的程序员可以学习。” (第十五页)
Python 是一门很棒的语言并且易于学习,但我怀疑应用书中的想法的困难不在于将代码翻译成另一种语言或一组库,而在于理解这些想法并修改代码以适应您的需求需要。我认为使用您熟悉的语言有两个主要原因:1)当您的代码不起作用时,如果您使用不熟悉的语言编写,您将不知道从哪里开始寻找错误,例如,如果你和大多数人一样,你甚至会开始怀疑这是否是由于 Python 中的一个错误,它不会是,但你会想知道它会分散注意力。2)在一定时间内你能记住多少是有自然限制的;同时学习一门语言会给你两倍的记忆。
这取决于你对 C# 的了解程度,以及离开它会失去什么。
强制性 XKCD:http: //xkcd.com/353/
我知道您明确表示您不想学习 Python(今年),但是将 Python 示例转换为 C# 肯定会是一条更陡峭的曲线。潜入吧!
对于人工智能编程,Python 似乎就像 LISP 几十年来一样。Russel/Norvig 的名著AI: A Modern Approach也提供了大量Python 示例。