Questions tagged «scheme»

Scheme是一种功能编程语言,是Lisp的一种方言。它具有带有标准规范和许多实现的简约设计。

5
Scheme vs Common Lisp:哪些特征在您的项目中有所作为?[关闭]
在StackOverflow和此站点上都不乏含糊的“方案与通用Lisp”问题,因此,我想使这一问题更加集中。问题是针对使用两种语言进行编码的人: 在使用Scheme编码时,您最想念Common Lisp编码经验的哪些特定元素?或者,相反,在使用Common Lisp进行编码时,您从Scheme编码中错过了什么? 我不一定只是语言功能。就问题而言,以下是所有值得错过的东西: 特定的库。 开发环境的特定功能,例如SLIME,DrRacket等。 特定实现的功能,例如Gambit将C代码块直接写入您的Scheme源的功能。 当然还有语言功能。 我希望得到的答案的示例: “我试图在Common Lisp中实现X,如果我拥有Scheme的一流延续性,我完全会做Y,但是我必须做Z,这更痛苦。” “随着我的源代码树的增长以及我链接到越来越多的C库,在Scheme项目中编写构建过程的脚本变得越来越痛苦。在下一个项目中,我回到了Common Lisp。” “我现有一个庞大的C ++代码库,对我而言,能够将C ++调用直接嵌入到我的Gambit Scheme代码中,这完全是Scheme与Common Lisp相比可能存在的任何缺点,甚至包括缺乏SWIG支持。” 因此,我希望获得战争故事,而不是诸如“方案是一种更简单的语言”之类的一般观点。
155 lisp  scheme 

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

11
为什么Scheme是我上大学的第一语言?
每当人们开始谈论计算机科学时,我每天都会听说C,C ++,Java,但是在我的第一门计算机科学课程中,我们被要求用Scheme(DrRacket)编写。 这是为什么? 这将对我以后对编程的理解产生什么不同? 更新:我已经完成了第一学期,但是对Scheme并没有完全完成。在第二个学期(现在)中,我们开始进行C编程。一开始学习指针很沮丧,但是现在我感觉好多了。 没有比这更多的话了。我正在尝试为缺少的OOP部分自学Java(或C ++?)。到目前为止,我仍然最喜欢函数式编程。Lambda令人着迷。:)
80 scheme 


12
Scheme与Haskell进行函数式编程简介?
我对使用C和C#编程感到满意,并且将来会探索C ++。我可能对将函数式编程作为一种不同的编程范例进行研究感兴趣。我这样做很有趣,我的工作不涉及计算机编程,并且在大学的计算机科学课程中就很早就开始使用函数式编程,这在某种程度上受到了启发。Lambda微积分当然超出了我的数学能力,但是我认为我可以处理函数式编程。 Haskell或Scheme中的哪一个可以很好地介绍函数式编程?我将emacs用作文本编辑器,并希望将来能够更轻松地对其进行配置,这需要学习Emacs Lisp。但是,我的理解是Emacs Lisp与Scheme完全不同,并且在功能性方面也更具程序性。 如果我追求Scheme,我可能会使用已经购买的“ The Little Schemer”书(我有限的翻阅对我来说似乎有些不可思议)。或者,如果我追求Haskell,可以使用“向您了解Haskell的伟大成就”。我还将在第9频道上观看Erik Meijer博士的Haskell简介视频。 任何建议,反馈或意见表示赞赏。 谢谢。 PS BTW由于我拥有用于​​C#开发的Visual Studio 2010,因此我也可以使用F#,但是我认为这不是我选择语言的主要标准。

2
将指称语义学应用于程序设计
我已经读过一些有关指称语义(DS)的文章,并且对设计计算机程序的过程非常感兴趣,在计算机程序中,类型和功能与数学之间有着牢固而清晰的映射。 是否有任何资源详细讨论了基于DS的设计程序?我已经看到了对该主题的一些表面处理。 我精通Haskell,Scala,Common Lisp和一些Scheme,因此使用这些语言的任何资源都将受到赞赏。
30 scala  haskell  scheme 

6
纯函数式编程语言如何在没有赋值语句的情况下进行管理?
在阅读著名的SICP时,我发现作者似乎不太愿意在第3章中向Scheme介绍转让声明。 由于Scheme是我所知的第一门函数式编程语言,令我有些惊讶的是,有些函数式编程语言(当然不是Scheme)可以在没有赋值的情况下完成。 让我们使用本书提供的bank account示例。如果没有赋值语句,该怎么办?如何更改balance变量?我之所以这么问,是因为我知道那里有一些所谓的纯函数式语言,根据图灵完整理论,这也必须做到。 我学习了C,Java,Python,并在我编写的每个程序中大量使用赋值。因此,这确实是一次令人大开眼界的体验。我真的希望有人能简要解释一下这些函数式编程语言中如何避免赋值以及对这些语言有何深远影响(如果有的话)。 上面提到的示例在这里: (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) 这改变了balance通过set!。在我看来,更改类成员非常像类方法balance。 如我所说,我对函数式编程语言并不熟悉,因此,如果我对它们说错了,请随时指出。

3
在通往启蒙的道路上:计划,常见的Lisp,Clojure?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 8年前关闭。 当我学习Lisp时,许多比我聪明的人会继续写书,因为您“了解它”,它使您成为更好的程序员。 也许我所听到的有关Lisp改变生活的所有信息只是对新手的一个恶作剧,但我认为了解更多关于世界的信息并没有什么害处,即使我发现我是在被sn口之类的东西之后被送去的。 我想遵循SICP或ANSI Common Lisp的规定,但同时要研究可以继续用于个人项目的方言和实现。 SICP专注于Scheme,因此这是一大票。保罗·格雷厄姆(Paul Graham)说,如果他要教新手,他会在Scheme中做,但是听起来Scheme仍然不及Common Lisp。但是接下来是Clojure了-有人告诉我Clojure在某些方面受到限制,但是在其他方面(JVM库)更实用。 听起来我可以更轻松地阅读Scheme的材料,或者从CL那里获得“真正的”启发,或者与Clojure足够接近,并且从长远来看可以做更多的事情。 所有这些中有多少是正确的?我什么时候应该停止思考要学习的内容而只是去学习呢?

6
Lisp宏有多有用?
Common Lisp允许您编写执行所需源转换的宏。 Scheme为您提供了一个卫生的模式匹配系统,您还可以执行转换。宏在实践中有多有用?保罗·格雷厄姆(Paul Graham)在击败平均水平中说: Viaweb编辑器的源代码大概是20-25%的宏。 人们实际上最终会用宏做什么事情?
22 lisp  scheme  macros 

3
是否有关于函数式编程概念的规范教程或书籍?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 来自过程/ OO编程的背景,我倾向于以过程的方式编写Scheme程序。我将以一种功能性的方式从头开始学习Scheme或Lisp,从而重新设置程序员的思维。 是否有教程或书籍是事实上的标准,用于描述有关函数式编程概念的最佳实践,设计方法和其他有用信息?那本书使它与众不同吗?

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

2
IronScheme是否完整或稳定到值得学习?
维基百科上提到IronScheme是失败项目IronLisp的继承者,该项目将Lisp引入CLR和.NET,就像Clojure为JVM所做的那样。有人有使用这种语言的经验吗?它看起来相当完整(99%),但是我不确定如何判断是否值得花时间摆弄它。稳定或完整,我的意思是将其用于实际项目,而不仅仅是摆弄工具和Project Euler风格问题。
17 .net  lisp  scheme  clr 

2
在Clojure中使用SICP代替Scheme
我是软件工程课程的大三学生,我提出了将SICP读给一位顾问的想法,以便对我们设计的所有软件背后的原理有更深入,更基本的了解。 他建议不要学习Scheme来完成本书(因为它不像Lisp的现代方言那么普遍),而应该使用Clojure进行练习。 这本已经很困难的书,如果我在更现代的Clojure中尝试该书的练习,那将如何工作?例如,我找不到任何实际的解决方案,他们为Scheme教的语法是不同的,等等。
11 clojure  scheme  sicp 

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.