2013-11-11 2 views
0

В моем мире OO у меня есть экземпляр класса «оружие» под названием «max-damage». Я попросил создать случайное число для переменной, называемой «ущерб».случайное целое число в схеме

Он говорит: количество «ущерб» пострадали должна быть случайными целым не более, чем «Макс-повреждения», и по крайней мере 1.

мне нужна помощь, чтобы создать это случайное число, благодаря!

PS: Я не могу задавать больше вопросов, чтобы задать этот вопрос, я изменил предыдущий, извините ..

+0

Я запутался, почему остаток-лист возвращают список, который на самом деле не является остаточным значением? Фильтр - хороший подход к проблеме, но обычно вы определяете конкретный фильтр, который хотите использовать на входе, как в ответе Оскара, а не пытаетесь подготовить список для фильтрации. Это предотвращает переключение списка более одного раза. – WorBlux

ответ

2

Вы получили синтаксис filter неправильно, это необходимо, чтобы вы передаете a процедура как первый аргумент. Конкретно, эта процедура является предикатом (значение: оно вычисляется в виде логического значения), а в выходном списке сохраняются только элементы исходного списка, которые оцениваются до #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)) 
Смежные вопросы