首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#开发人员常用的Lisp?

C#开发人员常用的Lisp?
EN

Stack Overflow用户
提问于 2011-02-18 14:39:47
回答 7查看 8.6K关注 0票数 7

更新

我决定暂时和Clojure一起去。

LispDev还没有准备好,而且Eclipse还不够稳定,让我感到不舒服。

至于Clojure,经过一个漫长、非常令人沮丧、非常恼人的过程,试图让Eclipse/CCW、Netbeans/Enclojure和IntelliJ/Enclojure工作之后,我终于让Eclipse/CCW工作了。其余的仍处于破碎状态。

(如果我有时间使用它,我会记录一下Eclipse/CCW的工作原理。)

所以现在,我要用这个。我可能会回到CL中,查看LispWorks和AllegroLisp的免费版本,但对于我来说,Clojure似乎是在Microsoft环境中工作的一个更自然的步骤。

谢谢大家的帮助。

原始问题

我是一个C#开发人员,非常熟悉Visual (使用Resharper)。

我对Lisps很陌生。我最近对Common和Clojure都很感兴趣,并且在这两个方面都找到了很多好的材料。

我试过Emacs + Slime,但它感觉像一个非常倒退的,过时的解决方案。我对它的威力毫不怀疑,但它的可用性与我所习惯的完全不同。除了语言之外,我不想和IDE做斗争。

对于Clojure和CL,都有Eclipse插件。此外,我还看到了一些关于Clojure的选项。因为我不是Java,所以我对这些IDE一无所知。

Eclipse是一个很好的起点吗?还有其他好的选择吗?

编辑:

以下是我习惯的特点:

  • 语法高亮和自动缩进(每个人都有这一点,所以这是一个模拟点)
  • 函数和变量名的自动完成
  • 实时显示所有函数重载和参数,以及在输入参数时上下箭头通过列表的能力
  • 代码改进的语法建议,以及为您做这些改进的能力(“使用const”、“转换到LINQ表达式(FP)”、“变量永远不会被分配给”、“变量永远不会被使用”、“变量可能为null”、“函数永远不会被使用”等)。
  • 提取方法/函数重构:选择一个文本块,然后将其提取到一个新函数中。
  • 创建变量重构:选择一个文本块并创建一个变量(例如,let)
  • 重命名重构:重命名一个函数或变量声明,使用它的所有其他函数都将被更新(自动搜索/替换)
  • 转到方法/函数、变量的定义
  • 查找特定方法/函数、变量的用法/引用
  • 基于文件夹的集成项目管理工具和构建工具
  • “将类移动到新文件”,它根据类名创建一个新文件,并包含它的所有方法。
  • “基于类类型的重命名文件”,它在更改类名时重命名该文件。
  • F9/单击行左侧以添加/删除断点
  • F10/F11调试时进入或超过代码,并带有箭头并突出显示当前正在执行的代码(步骤为func执行,或仅在此处执行)

大多数内容都可以在右键单击上下文菜单中获得,或者在键入时作为一个悬停的组合框或文本框使用。

我并不是说emacs/slime不能做到这一点,但是如果它这样做了,它就不会在可用性技术方面使用任何类似的东西。

EN

回答 7

Stack Overflow用户

发布于 2011-02-18 15:09:07

如果您已经习惯了Visual,并且希望为Lisp提供类似的产品,那么类似的产品很可能是类似的商业IDE。我所知道的最重要的是快板Lispworks

虽然我尝试过演示,但我个人并没有将这两种方法都用于实际工作(即大型项目)。他们看起来很好,如果有点复杂和奇怪的用户,但没有比泥那么好,值得的钱,我。但是如果你想要像VS这样的东西,它们可能就是你要找的东西。

FWIW,我在Emacs中同时使用C#和Common,我发现Slime比我到目前为止在编辑C#时所找到的任何一组模式都要好10倍。想想看,我不知道任何语言或平台的开发环境--它是那么好。

您可能遇到的一个问题是,Lisp本身是一种与您习惯的不再适用的旧方法不同的语言,因此任何IDE对您来说都可能是“向后”的。(我早在C#之前就学会了Lisp,而C#对我来说似乎是逆向的和过时的!)因此,您不是学习一些same命令(并不是很多您真正需要的命令),而是学习IDE命令,这对您来说可能并不容易,因为这些概念是相同的,不一定映射到VS类IDE特性。

但无论你选择什么,祝你好运!

票数 7
EN

Stack Overflow用户

发布于 2011-02-19 14:03:52

C#主要用于批处理模式。IDE显示了这一点。它知道固定语言的语法,调用编译器,并使用各种工具(如编译器)的输出。

普通的Lisp略有不同。IDE要么集成到Common (快板CL、LispWorks、CCL)中,要么与Emacs类似,并连接到正在运行的Lisp (SLIME / Emacs)。主要的发展模式是互动的。一个程序正在运行,IDE对它进行了修改。

对于Emacs,可以使用带有扩展Paredit和红胫的黏液。见:用Emacs编辑Lisp代码

  • 语法高亮和自动缩进(每个人都有这一点,所以这是一个模拟点) 这是由IDEs提供的。
  • 函数和变量名的自动完成 这是由IDEs提供的。
  • 实时显示所有函数重载和参数,以及在输入参数时上下箭头通过列表的能力 普通的Lisp没有“重载”。可以在IDE中浏览泛型函数(CLOS)。
  • 代码改进的语法建议,以及为您做这些改进的能力(“使用const”、“转换到LINQ表达式(FP)”、“变量永远不会被分配给”、“变量永远不会被使用”、“变量可能为null”、“函数永远不会被使用”等)。 Lisp编译器输出提示和警告。也有一些风格的建议。 CL-用户15 > (defun ( a ) a) foo CL-USER 16 >(编译' FOO );* FOO: b中的警告是绑定的,但没有引用FOO。 像LispWorks这样的实现可以浏览一组警告和错误。
  • 提取方法/函数重构:选择一个文本块,然后将其提取到一个新函数中。 工具可以做到这一点。比如Redshank。
  • 创建变量重构:选择一个文本块并创建一个变量(例如,let) 雷尚克。
  • 重命名重构:重命名一个函数或变量声明,使用它的所有其他函数都将被更新(自动搜索/替换) 使用IDE的搜索和替换工具。请注意,由于Lisp具有可编程语法,所以问题不能以一般方式解决。
  • 转到方法/函数、变量的定义 元..,Meta编辑定义
  • 查找特定方法/函数、变量的用法/引用 他称之为“IDE中的特征”。
  • 基于文件夹的集成项目管理工具和构建工具 见系统工具。
  • “将类移动到新文件”,它根据类名创建一个新文件,并包含它的所有方法。 普通Lisp并不是这样工作的。方法和类不像在C#中那样连接。
  • “基于类类型的重命名文件”,它在更改类名时重命名该文件。 普通Lisp并不是这样工作的。不为类编写文件。
  • F9/单击行左侧以添加/删除断点 取决于IDE。否则使用函数中断。
  • F10/F11调试时进入或超过代码,并带有箭头并突出显示当前正在执行的代码(步骤为func执行,或仅在此处执行) 使用函数步骤或IDE工具。
  • 大多数内容都可以在右键单击上下文菜单中获得,或者在键入时作为一个悬停的组合框或文本框使用。 是。

我认为您需要更详细地检查SLIME,因为它与常用的Common特性(如步骤、中断和跟踪)结合在一起,可以完成很多您描述的功能。

阅读LispWorks IDE的手册可能也很有用,该手册在可移植图形用户界面中提供了相应的特性,等等:

用于Windows的Lispworks,IDE用户指南

  • 我并不是说emacs/slime不能做到这一点,但是如果它这样做了,它就不会在可用性技术方面使用任何类似的东西。 黏液是基于Emacs,所以它是由它的UI形成的。例如,LispWorks使用Emacs的想法主要是针对编辑器组件(它基于用Common编写的类似Emacs的编辑器)。LispWorks使用图形用户界面工具进行类浏览、通用函数浏览、系统管理、调试器、检查器等。
票数 4
EN

Stack Overflow用户

发布于 2011-02-18 14:48:40

也许你应该试一试贾贝沃基

还有LispIDELisp工作室

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5042601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档