Random 方案中的随机整数

Random 方案中的随机整数,random,scheme,racket,mit-scheme,Random,Scheme,Racket,Mit Scheme,在我的OO世界中,我有一个名为“最大伤害”的“武器”类实例。我要求为一个名为“损害”的变量创建一个随机数 它说:遭受的“伤害”应该是一个随机整数不超过“最大伤害”,并且至少为1 我需要一些帮助来创建那个随机整数,谢谢 PS:我不能再问更多的问题了,为了问这个问题,我已经更改了前一个问题,对不起。您的语法错误,您需要传递一个过程作为第一个参数。具体地说,过程是一个谓词(意思是:它的计算结果为布尔值),输出列表在传递给过程时只保留原始列表中计算结果为#t的元素。这就是我的意思: (define (r

在我的OO世界中,我有一个名为“最大伤害”的“武器”类实例。我要求为一个名为“损害”的变量创建一个随机数

它说:遭受的“伤害”应该是一个随机整数不超过“最大伤害”,并且至少为1

我需要一些帮助来创建那个随机整数,谢谢

PS:我不能再问更多的问题了,为了问这个问题,我已经更改了前一个问题,对不起。

您的语法错误,您需要传递一个过程作为第一个参数。具体地说,过程是一个谓词(意思是:它的计算结果为布尔值),输出列表在传递给过程时只保留原始列表中计算结果为
#t
的元素。这就是我的意思:

(define (remove-divisible lst value)
  (filter (lambda (x) (not (zero? (remainder x value))))
          lst))
如果使用
lambda
使您感到困扰,则始终可以定义帮助程序,如下所示:

(define (remove-divisible lst value)
  (define (not-divisible? x)
    (not (zero? (remainder x value))))
  (filter not-divisible? lst))

我很困惑,为什么余数列表返回的列表实际上不是余数值?Filter是解决问题的一种很好的方法,但一般来说,您定义了要在输入上使用的特定筛选器,就像Oscar的回答中一样,而不是试图准备要筛选的列表。它可以防止您多次横穿列表。