问题标签 [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 投票
3 回答
1551 浏览

scheme - 尝试在 MacOSX Snow Leopard 上安装 MIT-Scheme 时遇到问题

我正在尝试安装 MIT-Scheme,以便我可以在终端上使用它而不是使用 IDE,但是,我很难找到实际上是最新且有效的教程。

0 投票
1 回答
278 浏览

scheme - 如何从(MIT)方案调用本机代码?

如何MessageBox从 Scheme 中调用本机函数(例如 )?

0 投票
2 回答
555 浏览

scheme - 使用流生成带有交替符号的数字的更好解释

这里的代码可以生成这样的数字 [1 -2 3 -4 5 -6 7 -8 9 -10 ...]

我不太明白它产生交替符号的方式。有人可以给我一个更好的描述来帮助我想象这个吗?

您可以在 mit-scheme 中运行代码。

0 投票
1 回答
1712 浏览

scheme - 如何在方案中定义子环境?

我只是在使用 Scheme (mit-scheme),我刚刚弄清楚了如何更改环境,因此“+”成为“-”运算符的等效过程的符号。

例子

我只是想知道是否有一种简单的方法可以将环境作为变量处理,所以当我将环境输入到 eval 中时,就像这样

我不必使用“用户初始环境”。所以我可以在不同的环境中“玩”一个功能。

其中 env 是附加到我的变量“env”的一些预定义环境。

0 投票
2 回答
825 浏览

recursion - 在递归过程中显示到输出端口 - 方案

我正在学习 Scheme 并想编写一个递归过程,在每个运行级别输出到控制台:

然后测试:

但似乎只有最后一个调用过程的输出才会被打印出来。我应该怎么做才能让它发生?谢谢。(我正在使用 Mit-scheme)

0 投票
1 回答
2132 浏览

debugging - 使用 MIT-Scheme,有没有办法检查复合过程对象?

使用 MIT-Scheme 9.x,有没有办法使用调试器或其他工具来检查匿名复合过程(通过返回 lambda 函数创建),例如找出它来自哪一行的确切代码?

例如,我目前正在做类似的事情:

我看到一条错误消息,例如:

... foo 正在做一些进一步的调度( foo 不是这里的问题,它更深)。在这个例子中,我真的很想知道 #[compound-procedure 65] 的内部结构,因为它显然不是我所期望的。那里的 Lisp/Scheme 向导是否知道获取这些详细信息的方法?谢谢。

0 投票
4 回答
14049 浏览

scheme - Mit-Scheme中的空值?

谁能告诉我 mit-scheme 中的空值表示是什么?在 SICP 书中,它应该是“nil”,但它不起作用。谢谢。

0 投票
1 回答
2824 浏览

vim - 如何使用 MIT-Scheme 为 slimv 启动 REPL

我的操作系统是 Debian Squeeze。这是vim版本:

VIM - Vi IMproved 7.2(2008 年 8 月 9 日,2010 年 7 月 12 日 02:29:33 编译)

我阅读了关于http://kovisoft.bitbucket.org/tutorial.html的教程并尝试为 MIT-Scheme 启动 REPL。不幸的是,我没有开始。

当我按下“,c”时,它启动了一个终端窗口加载 mit-scheme。vim 的 REPL 缓冲区中没有显示任何内容。终端显示一些错误:

我阅读了源代码并修复了一些错误(关于 netcat 的参数和其他内容),这是 diff 文件:

我重试了,但出现了一些新问题。

这是日志文件(swank.log)

这是数据包:

0 投票
4 回答
2091 浏览

scheme - 如何在方案中将字符串作为函数名传递?【Scheme中函数名的动态构造】

问题如下,它在http://www.cs.indiana.edu/classes/b551-leak/scheme_practice.html中找到。

问题定义:编写一个函数 cxr,它是 Scheme 中提供的 car/cdr 运算符的泛化。cxr 应该接受一个字符串 "a"s 和 "d"s 代表要执行的 car 和 cdr 操作的序列,并返回一个能够执行该序列的函数。

因此 (cxr "ad") 等价于函数 cadr。

我的尝试:我使用 string-append 将 cxr "ad" 转换为字符串 "cadr"。[这很简单] .. 现在我如何在“cadr”和 cadr 之间进行链接...我尝试了字符串-> 符号,但是输出被引用并且函数没有被执行。- 那么有什么方法可以取消引用?!

真正的问题:如何解决这个问题?


更新:感谢所有这些答案。它们都是正确的,我什至在发布问题之前就已经通过这种方式解决了。我主要是在寻找一种在输入为 (cxr adddd) 时实际调用 caddddr 的方法...... Everbody 的功能与 caddddr 相同,但实际上并未调用 cadddr。

也就是说,如何使函数具有与 cadr cadr 等相同的命名类型。


更新:(我想我找到了解决方案,它如下 - 但正如下面所说,它不适用于更长的 d):

0 投票
2 回答
979 浏览

linux - 麻省理工学院计划 REPL 历史

我已经使用 MIT-Scheme 有一段时间了,效果很好。但是,在 REPL 模式下,我真的很怀念我输入的所有命令的历史记录。如果出现小的印刷错误,重新输入一段代码是非常令人沮丧的。

如何启用该history模式?(如果存在这样的事情)