Пока L oop в ракетке - PullRequest
       18

Пока L oop в ракетке

1 голос
/ 26 февраля 2020

Напишите процедуру в Racket, которая действует как «циклы while» в таких языках, как Java. Некоторое время l oop запускает два куска кода: условие и тело. он запускает тело, затем снова пробует условие, снова запускает тело, если это правда. Это продолжается до тех пор, пока условие не вернет false.

вот так я и начал: потом застрял.

(define (while condition body)
   (when (true? condition)
       (cons (proc body) (proc (rest body)))

1 Ответ

1 голос
/ 26 февраля 2020

condition и body являются процедурами, поэтому вы должны вызывать их.

После вызова тела вы должны вызвать while рекурсивно, чтобы повторить.

(define (while condition body)
  (when (condition)
    (body)
    (while condition body)))

Вам не нужно true?, поскольку when просто проверяет, является ли условие #f или нет.

...