问题标签 [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.
c - How can I print the car and cdr for the consed object in this code if they are integers?
I am trying to build a cross compiler that implements scheme in c. For this I am trying to implement the basic scheme structure using cons and lists. The code which is shown below is for cons. I am not able to access the car of a consed object when it's an integer and not another consed object.
scheme - 如何在 Scheme 中编写 SUM 函数?
如何在方案中编写一个对嵌入列表中的数字求和的函数?
即 ((1) (2 3) (4) (5 6))
我写这个是为了总结常规列表:
但我不确定如何做嵌入式。
scheme - 在 Scheme 中生成真值表
规格如下:
一个公式是:
- 一个真值,即要么
#t
或#f
- 一个变量,即
p, q, r, ...
(not formula)
(and formula1 formula2)
(or formula1 formula2)
真值表是一组行。一行包含一个绑定(I t)
,其中I
真值赋值,即绑定集(p t)
。I
一定是:
- 持续的
- 完全的
t
是由估值函数产生的V(formula, I)
。V
定义为:
V(t,I) = t
V(p,I) = t
用于(p t)
绑定I
V((not formula), I) = (not (V (formula I)))
V((and formula1 formula2), I) = (and V(formula1 I) V(formula2 I))
V(( or formula1 formula2), I) = (or V(formula1 I) V( formula2 I))
为了在 Scheme 中实现真值表,可以遵循什么程序?请注意,公式中可能有子公式。
random - random integer in scheme
In my OO World, I have an instance of "weapon" class called "max-damage". I asked to create a random number for a variable called "damage".
It says: The amount of "damage" suffered should be a random integer no more than the "max-damage", and at least 1.
I need some help to create that random integer, thanks!
PS: I can't ask more questions, in order to ask this question, I have changed the previous one, sorry..
scheme - 使用 map、filter 或 fold-right 的字符串列表中的长度列表
你会得到一个字符串列表。
生成一个过程,以便将此过程应用于此类列表将导致输入中每个字符串的长度列表。
使用
map
、filter
或fold-right
。
我陷入了以下代码中,我不明白如何使用filter
.
scheme - 方案中嵌套定义的体面方式
我想foo
使用一个辅助函数来定义一个常量,比如bar
. 我想隐藏bar
在 的定义中foo
,所以我提供了以下代码:
然而,这个定义在许多方案实现(mit-scheme、racket、guile 等)中会导致语法错误。
我有三种解决方法,但似乎都不令人满意:
foo1
使用 lambda 来创建编写辅助定义的环境,括号似乎有点令人困惑。
foo2
使用 let 表达式,但我不能再使用语法糖(define (f n) ...)
=>(define f (lambda (n) ...))
foo3
与原始值相比,需要较少的修改,但每次我想要这个值时,我都必须重新调用(foo3)
并重新计算。
我的问题是:
- 我认为这种嵌套定义是有道理的,但为什么会被认为是语法错误呢?
- 有什么体面的方法来写 的定义
foo
吗?
mit-scheme - 保留过程中定义的变量?
我写了一个程序(do-test)
。由于测试可能对变量有一些影响env
,我env
在里面定义do-test
了希望env
程序不会携带它,所以每次运行它,我都会得到一个新的环境来工作。令我惊讶的是,我的测试程序居然携带了以前的env
. 请找到以下代码:
我尝试使用 mit-scheme / guile / codepad.org 运行此代码,所有这些都告诉我运行(do-test)
两次会产生不同的结果。
但是,如果我将行更改(define env '(1))
为(define env (list 1))
,我会得到预期的结果。(您可以在 codepad.org 中找到更改前后的代码)
据我所知,'(1)
应该(list 1)
是相同的,除了第二个将调用过程list
。
我想知道为什么会发生这种情况以及如何防止程序重用以前的值?
emacs - 键绑定在 emacs 方案模式下不起作用
我正在按照此处的 emacs lisp 界面指南进行操作。
C-c q
应该退出方案模式。但是,这显示C-c q is undefined
错误。(exit)
在 REPL 上键入可以正常工作。为什么这个键没有绑定在我的 emacs 中?
emacs - 在 emacs 的缓冲区中评估 mit-scheme 代码?
M-x eval-buffer
评估缓冲区中的 lisp 代码。如何评估写在缓冲区中的 mit-scheme 代码?