Questions tagged «common-lisp»

15
LISP在当今世界仍然有用吗?哪个版本最常用?
我尝试每隔一定的时间自学一种新的编程语言。最近,我已经阅读了Lisp及其方言在C / C ++之类的语言中处于完全相反的一端的过程,这使我感到好奇,足以了解更多有关它的信息。但是,我不清楚两件事,我正在寻找有关它们的指导: LISP是否在当今世界仍在实践/使用,还是像FORTRAN / COBOL这样的传统语言?我的意思是,除了维护现有代码外,它是否还用于新项目? 什么是最广泛使用的方言?我遇到了Scheme和Common Lisp这两种最流行的方言,并希望您对哪种是最受青睐/最有用的方言发表意见,如果您能为初学者提供任何建议的资源,将不胜感激。 虽然渴望学习一种与我习惯上的程序语言根本不同的语言,但我不想为某种完全过时的东西投入过多的精力-如果它是专业上的“死胡同”,我仍然会学习它,但只有学术角度...


2
这些常见的对口齿不清的旧批评在今天仍然适用?
在1984年由Stanford的Rodney A. Brooks和Richard P. Gabriel撰写的“ Common Lisp批判”中,讨论了Common Lisp规范化委员会保留的一些设计决策。尽管大多数讨论仍然有效,但是有两种说法是指当时可用的技术,今天可能是错误的。 这两个语句是: 由于“任何好的编译器”都可以照顾到这种语言,因此消除了这种语言的太多成本。到目前为止,还没有人编写过(即使没有付出巨大的努力也不会编写)一种编译器,该编译器完成了预期的技巧。 由于我是Lisp的新手,甚至是学徒,因此我无法比作者更具体。他们似乎指出,该语言的多个方面已经内置了极大的通用性和灵活性,这使得编写一个好的编译器非常困难。 在COMMON LISP中,对浮点算法的控制太多了。当然,尽管可以获得浮点密集型程序的正确行为,但性能可能会发生巨大变化。 据我了解,用Common Lisp编写高效的数字代码似乎是可能的,但比必须的更具挑战性。 那是三十年前。如果我愿意为一种常见的自由软件实现(CLISP,SBCL等)编写Common Lisp程序,我今天应该如何看待这些声明?

4
那么,LISP如何使宏系统的实现变得更容易呢?
我正在从SICP学习Scheme,给人的印象是,使Scheme以及LISP特别与众不同的很大一部分是宏系统。但是,由于宏是在编译时扩展的,所以人们为什么不为C / Python / Java /任何东西制作等效的宏系统?例如,可以将python命令绑定到expand-macros | python或任何其他内容。该代码对于不使用宏系统的人仍然可以移植,只是在发布代码之前扩展宏即可。但是除了C ++ / Haskell中的模板之外,我不知道其他类似的东西,我收集的模板并不完全相同。那么,LISP又如何使实现宏系统更容易呢?

2
Haskell中是否删除了类型?
Haskell的“泛型函数”概念与常见的lisp有一些明显的相似之处-既没有Haskell的经验,也没有常见的lisp,在这里我可能是非常近似的。这意味着可以定义一种通用to_string工具来定义所有类型的字符串表示形式。当然,必须在特殊情况下定义to_string功能,但是有一个函数的签名为α → string。 是否像在OCaml中一样在Haskell中删除了类型?如果是,那么Haskell中“泛型函数”的实现与普通lisp的实现有何不同,后者在普通类型中是动态的,因此不会被擦除? 我了解实现细节是特定于编译器的,但是可能有许多或所有实现共有的规定。

2
Lisp和Scheme中的类型
我现在看到球拍具有类型。乍一看,它似乎与Haskell键入几乎相同。但是Lisp的CLOS是否涵盖了Haskell类型涵盖的某些空间?创建一个非常严格的Haskell类型和任何OO语言的对象似乎都差不多。只是我喝了一些Haskell kool-aid,而我完全偏执地认为,如果我沿着Lisp的路走,由于动态打字,我会被搞砸了。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.