问题标签 [scheme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
27562 浏览

lisp - 您可以从 Scheme 中的函数中返回任何内容吗?

我正在编写一个方案解释器,如果是 if 语句,例如:

我尝试过的任何解释器都会返回一个新的提示。但是当我编写这个代码时,我有一个 if 是否有替代表达式。如果没有打印任何内容,我可以返回什么?

0 投票
3 回答
1261 浏览

scheme - 您如何停止 DrScheme 的 R5RS 实施?

将 DrScheme 与 R5RS 一起使用时,没有错误功能。我打算自己写,但不知道如何停止程序执行。我尝试了以下命令:

  • (停止)
  • (出口)
  • (错误)

没有工作。你如何停止程序执行?

0 投票
6 回答
5806 浏览

scheme - 初学者:Scheme 中的柯里化函数

我正在使用 SICP 讲座和文本来自己了解 Scheme。我正在看一个练习,上面写着“表达式 E 的应用程序是 (E E1,...En) 形式的表达式。这包括 n=0 的情况,对应于表达式 (E)。Curried 应用程序E 的应用要么是 E 的应用,要么是 E 的 Curried 应用的应用。”

(编辑:我更正了上面的引用......我最初错误地引用了定义。)

任务是定义计算为 3 的过程的 Curried 应用程序

我真的不明白这里的想法,阅读关于 Curriying 的维基百科条目并没有真正帮助。

任何人都可以帮助更清楚地解释这里的要求吗?

实际上,即使给我这个问题的答案也会有所帮助,因为在这个问题之后还有五个要解决。...我只是没有得到基本的想法。

补充:即使在布赖恩坎贝尔冗长的解释之后,我仍然有些迷茫。

(foo1 (sqrt 3)))认为是 foo 的应用程序,因此是 foo 的柯里化应用程序?

看起来太简单了,但也许...

输入(((foo1 2 )) 2)DrScheme 会出现以下错误(我有点预料到)

重新阅读什么是柯里化?我知道我也可以将 foo1 重新定义为:

那么我可以输入

12

但这并没有真正让我更接近于产生 3 作为输出,而且看起来这并不是真正对原始 foo1 进行柯里化,它只是重新定义它。

该死,20 年的 C 编程并没有让我为此做好准备。:-) :-)

0 投票
5 回答
42751 浏览

lisp - 什么是在列表中查找元素的 Scheme 函数?

我有一个元素列表'(abc),我想找出其中是否(真或假)x,其中x可以是'a或'd,例如。是否有内置功能?

0 投票
3 回答
423 浏览

lisp - 在 Dr Scheme 中加载库

我正在使用 Dr Scheme 通过 SICP 工作。

如何在 Dr Scheme 中加载外部库?假设我想使用数学库,那么我如何让 Dr Scheme 加载特定的库?

我尝试了以下方法:( 需要(lib“math.ss”))

得到以下错误: 对未定义标识符的引用:需要

我选择了 R5RS 作为语言。

0 投票
2 回答
1879 浏览

scheme - 为 Dr. Scheme 寻找简单的 Scheme 习语

我正在学习 SICP,同时使用 Ableson/Sussman 讲座和 Berkeley 61A 讲座,这比我的速度要快得多。我想做一些伯克利的作业,但需要句子的定义,butfirst,butlast 等等。看起来曾经有一种简单的方案语言内置于 Dr. Scheme,但最新的 4.1.5 版没有它。从Planet PLT ,我想我可以在我的定义窗口中简单地添加 (require (planet "simply-scheme.ss" ("dyoo" "simply-scheme" 1 0)))。我明白了

我尝试从这里抓取 simple.scm 文件 并将其粘贴到我的 Dr Scheme 定义窗口中,但它不起作用:

在高级学生模式下,我读到:非法使用“。”

对于以下代码中的 (lambda (string . args) 行。

在 R5RS 中,我设置了!:无法改变模块所需的标识符:数字->字符串(以下代码的第 7 行)

0 投票
6 回答
9719 浏览

windows - Windows Scheme/Lisp 实现

有成千上万的 LISP 和 Scheme 实现可用,我很难找到合适的用于 Windows 开发的实现。我在学校学习了这些语言,发现它们非常优雅,但是,除了在学术环境中之外,我似乎无法找到适合开发代码的实现。

什么是具有以下要求的 Scheme 或 LISP 实现?

编译为本机代码,而不是编译为 C。

支持多处理器上的多线程(即多个线程可以同时运行)。

生成 64 位代码。

无需 Cygwin 即可在 Windows 中使用。

0 投票
2 回答
1702 浏览

scheme - 寻求人为的示例代码:延续!

所以我相信我现在至少在某种程度上理解了延续,这要归功于社区计划 wikiFixnum Days 中的 Learn Scheme

但是我想要更多的练习——也就是说,我可以在脑海中完成更多的示例代码(最好是人为的,所以没有多余的东西可以分散这个概念的注意力)。

具体来说,我想解决更多关于恢复和/或协同程序的问题,而不是仅仅使用它们来退出循环或其他任何东西(这相当简单)。

无论如何,如果你知道除了我上面链接的那些之外的好教程,或者如果你想发布你写的东西,这将是一个很好的练习,我将非常感激!

0 投票
16 回答
15036 浏览

python - Python 宏:用例?

如果 Python 有一个类似于 Lisp/Scheme 的宏工具(类似于MetaPython),你会如何使用它?

如果你是一名 Lisp/Scheme 程序员,你会使用宏来处理哪些事情(除了在 Python 中具有明确的句法并行性的事情,例如 while 循环)?

0 投票
4 回答
18755 浏览

lisp - 如何编写一个接受两个列表并返回四个列表的方案函数

我有 2 个元素列表 '(abc) '(dbf) 并希望在一个结果中找到差异、联合和交集。那可能吗?如何?

我写了一个成员函数来检查第二个列表中是否有第一个列表的汽车,但是我不能将成员扔到新列表中。

我的结果应该是(( a c) (d f) (a b c d f) (b))