Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
现在学习LISP有用吗?_Lisp - Fatal编程技术网

现在学习LISP有用吗?

现在学习LISP有用吗?,lisp,Lisp,前几天,我在车库大甩卖会上捡到一本口齿不清的书,我只是想知道它是否值得花点时间在上面。取决于这本书。哪本书 CommonLisp今天值得学习,因为它是为数不多的几乎“无所不能”的语言之一。如果有一些主流的或晦涩难懂的编程习惯用法或技术,那么很可能Lisp已经以某种形式出现了。CL唯一缺少的是延续性(许多人认为它不需要它们,但如果你想探索它们,那是没有帮助的) IMHO说,任何花时间认真用CommonLisp写作的人都会在某种程度上有所改变,通常会变得更好 即使你不能将你学习和使用的所有Lispy

前几天,我在车库大甩卖会上捡到一本口齿不清的书,我只是想知道它是否值得花点时间在上面。

取决于这本书。哪本书

CommonLisp今天值得学习,因为它是为数不多的几乎“无所不能”的语言之一。如果有一些主流的或晦涩难懂的编程习惯用法或技术,那么很可能Lisp已经以某种形式出现了。CL唯一缺少的是延续性(许多人认为它不需要它们,但如果你想探索它们,那是没有帮助的)

IMHO说,任何花时间认真用CommonLisp写作的人都会在某种程度上有所改变,通常会变得更好

即使你不能将你学习和使用的所有Lispy概念带到其他环境中,了解它们以及它们的工作原理仍然是有用的。

为了“思维扩展”的目的值得学习,但现在在构建应用程序方面并不流行

然而,它功能强大、成熟,并且有快速免费的编译器。因此,如果你愿意,没有理由不选择它作为节目

Lisp以同样的方式处理数据结构和程序结构提供了惊人的能力,值得理解

它的历史是迷人的,它塑造了计算机科学的世界

请务必查看麻省理工学院开放式课程中的Ableson和Sussman


请参见问题,尤其是第三个答案,该答案解释了Lisp对于解决复杂问题非常有用,这些问题如果您试图用另一种语言解决,则很难分解为更易于管理的模块。换句话说,如果你热衷于探索解决复杂问题的方法,比如说自然语言处理或知识聚合。。。那么,是的,Lisp可能对您很有用。

它()仍然被从事人工智能工作的学者大量使用。也是许多(大多数?)CS部门使用的类似Lisp的语言。我个人认为学习Lisp是值得的,不管你最终是否使用它。这是一门经典的语言,随着时间的推移我们已经学到了很多。

这就像是在问“现在的web编程是否值得学习C?”。只有你才能决定它是否值得。你要问自己的是:读这本书我想达到什么目的


学习新语言有时在实际意义上是没有用的(也许你一生中永远不会使用LISP),但从长远来看,它将是有用的,因为你不太熟悉的不同范例获得了知识,你可以利用你在今天已经使用过的东西中学到的一些知识。

学习LISP是有效学习函数式编程的一个好方法,并且经常被用作本科生的入门语言。许多人认为,这本使用Lisp的Scheme方言的书应该放在每个程序员的书架上

Paul Graham一直是Lisp的创始人,在他的书中,他描述了他如何利用Lisp的强大功能在为雅虎商店创建ViaWeb的竞争中占据主导地位


在其他地方,我看到Lisp方言在航空航天行业中被广泛使用,作为集成框架(如、和)的脚本工具。Lisp将永远与20世纪50年代早期的人工智能实验联系在一起。

是的。在这里,我将坚持使用CommonLisp,尽管Scheme也是一种优秀的语言,有很多值得推荐的地方

在Common Lisp中,您有一种更大的多范式语言,它提供了一些在Lisp语言家族之外并不广泛存在的东西,或者仅限于CL语言和更晦涩/利基的语言

第一个特征是一个真正的宏观系统,你可以通过CL、Scheme和许多其他方言以某种方式获得

我之所以说“真实”,是因为该系统比C预处理器宏更完整、更灵活、更可靠。要让CPP宏以可靠的方式完成即使是简单的事情(如交换两个变量的值,或创建
foreach
构造),也非常困难,但这些对于Lisp宏来说都是微不足道的。事实证明,这是一个非常强大的工具,用于引入新的抽象和免除“样板”代码

第二个功能实际上仅限于CommonLisp,即CLOS,CommonLisp对象系统。尽管名称不同,但它不是像Java那样的传统OO系统,方法是类定义的一部分。相反,它通过“泛型函数”提供多态性,泛型函数是附加到方法的,默认情况下允许您执行多个分派

我非常喜欢CLOS,而不是更常见的面向对象方法,因为它使许多“模式”(如访问者模式)完全不必要,而且现有通用函数的扩展非常容易;其他人则讨厌它,因为它采用了一种非常随意的封装方法,并且泛型函数的扩展变得非常容易。无论哪种方式,CLOS都非常不同,我认为它值得学习,因为它提供了不同的视角

第三个特性是动态的交互式编程,它在Lisp之外可用,但如果您以前从未体验过它,它仍然非常棒。CL调试器往往是非常强大的工具,CL提供了函数、类和方法的动态定义和重新定义,所有这些都极大地提高了一个人探索问题、测试该问题及其子问题的解决方案,并最终生成正确有效运行的程序的能力

最后,对于许多类的问题,Lisp是一种非常实用的语言。它提供了良好的性能(通常没有C快,但比大多数“脚本语言”快得多)、安全性、自动内存管理、,
+ 1 2 3 4 5 6 7 8 9
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9