问题标签 [mit-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 投票
2 回答
8531 浏览

scheme - Sublime Text 2 与 MIT 方案

有谁知道我如何将 sublime text 2 与方案一起使用。我听说过 ST2 并想尝试一下?现在我正在学习计划。我安装了方案解释器——我可以去终端输入方案并运行代码。我也可以在 emacs 中运行解释器,但 emacs 并不是很有趣。

0 投票
2 回答
382 浏览

scheme - 比较列表中的项目?

如果您有一个列表( (1 4 5) 5 (6 2 5) )和另一个列表(5 1 3 7 5 (9 2 4) ),我需要编写一个程序来比较第一个列表中的项目并查看如果他们在第二个。例如,(1 4 5) 在 (5 1 3 7 5 (9 2 3) ) 中出现 0 次。5 在此列表中出现 2 次, (9 2 4) 出现 0 次。所以列表将返回 (0 2 0)

我需要帮助编写一个包含两个列表的方案过程频率,第一个是比较每个组件的那个,第二个是计算第一个列表出现次数的那个。该过程应返回事件列表。

谢谢!

0 投票
1 回答
1450 浏览

scheme - 比较列表中的项目?方案

如果您有一个列表( (1 4 5) 5 (6 2 5) )和另一个列表(5 1 3 7 5 (9 2 4) ),我需要编写一个程序来比较第一个列表中的项目并查看如果他们在第二个。例如,(1 4 5) 在 (5 1 3 7 5 (9 2 3) ) 中出现 0 次。5 在此列表中出现 2 次, (9 2 4) 出现 0 次。所以列表将返回 (0 2 0)

我需要帮助编写一个包含两个列表的方案过程频率,第一个是比较每个组件的那个,第二个是计算第一个列表出现次数的那个。该过程应返回事件列表。

到目前为止,我被告知要做两个程序,一个计算每个项目的出现次数(计数器),另一个在列表中跟踪它(频率)。到目前为止,我已经这样做了:

(define (counter ele lst)

(define (frequency els lst)

我不确定如何处理频率过程,以及如何从中调用计数器过程

谢谢!

0 投票
2 回答
68 浏览

lisp - 访问方案中高阶过程的输入

我需要了解如何访问作为输入提供给另一个函数的函数的输入。

例如; 我有一个名为 f 的函数,它只是执行(define f (lambda (x) (if (null? x) #t (car x))))此操作。我需要编写一个函数,以这个 f 作为输入并返回另一个函数,这样,

- 定义一个(twoback f)以函数 f 作为其输入的函数。

- 作为它的输出,它应该返回一个具有以下行为的新函数 g:

g(x) = #t 如果 x 是空列表或长度为 1 的列表。

该函数将像这样调用:((twoback f3) (list #t #f #t #f))

所以实际上我的问题是:如何访问我要编写的函数中的函数调用给出的列表(twoback 函数)?因为我需要检查它是否为空。

0 投票
0 回答
190 浏览

mit-scheme - 找不到任何可用的显示类型

我刚刚在 VirtualBox 中运行的 Centos 中安装了mit-scheme。但是每当我试图通过调用过程 (edit) 或 (edwin) 来启动 Edwin 编辑器时,都会返回一条错误消息,例如“找不到任何可用的显示类型”。任何人都可以帮我完成这个吗?

0 投票
3 回答
291 浏览

functional-programming - 下棋

我有一个移动程序,通过传递一对将合法移动应用于棋盘上的棋子:(cons source dest)所以(cons 1 2)从棋盘的位置1取一个棋子并将其移动到位置2。

我正在尝试制定一个应用它之前所做的相同动作的程序。我试着做

(move (reverse move)) 将通过 (cons 2 1) 从而将棋子向后移动。

不幸的是,反向对成对不起作用。我无法将其转换为列表,因为这将不得不更改大量代码以适应最后的空值。

有人能想到什么吗?顺便说一句,我正在使用 MIT 计划。

0 投票
1 回答
173 浏览

scheme - 跟踪棋盘游戏中的动作

我正在 MIT Sceheme 中创建一个国际象棋游戏。我想创建一个程序来跟踪所有部分的移动。

这是一个例子。我让车上移 5 格。我的下一回合我希望它向后移动 5 个空格。问题是,我不知道如何跟踪我在前一回合中向前移动的棋子——因此我不知道如何将它向后移动。我目前能做的就是拿下整个棋盘的状态。我假设我需要使用某种类型的突变?

0 投票
1 回答
1115 浏览

scheme - 按其值的数量重复列表中的值

完成 Scheme 过程 (repeats-a-lot lst),该过程接受一个非负整数列表并返回一个列表,其中按顺序包含每个值表示等于其值的次数。请参阅下面的示例。您可以在解决方案中使用反向。您也可以在您的解决方案和本页背面使用帮助程序以获得更多空间。

注意:这不是家庭作业。这是一个练习题,我无法得到答案

0 投票
1 回答
360 浏览

scheme - 当 mit-scheme 用于运行脚本时,如何使输出不那么冗长

我发现了这个问题,人们建议使用 mit-scheme 来解决 SICP 中的练习。在做了一些 python 和 ruby​​ 之后,我想知道是否可以以相同的方式使用 mit-scheme 解释器/编译器,如何使用 ruby​​ 或 python?我的意思是简单地在 vim 中编写脚本并mit-scheme my_script.scm在终端中运行以查看输出。

更新

看起来像mit-scheme < my_script.scm我正在寻找的东西,但它的输出太冗长了。理想情况下,我只想在输出中看到我故意发送给stdout.

0 投票
4 回答
351 浏览

haskell - 在 MIT 方案中表示未定义的结果

想象一下,我有一个函数,其域的所有整数都大于 0。我希望其他输入的结果未定义。为了简单起见,假设这是增量函数。在 Haskell 中,我可以通过类似的方式实现这一点

当然,这个例子很简单,但应该清楚我想要实现的目标。我不确定如何在 Scheme 中实现类似的效果。

我的想法是坚持error在那里,但有没有办法更紧密地复制 Haskell 行为?