У меня этот простой кусок кода, построения списка номеров:Есть ли способ сделать лат, используя минусы в схеме?
#lang scheme
(define pseudofizzbuzz (lambda (x)
(cond
((zero? x) (quote()))
((or (integer? (/ x 3)) (integer? (/ x 5))) (cons (quote()) (pseudofizzbuzz (- x 1))))
(else (cons x (pseudofizzbuzz (- x 1)))))))
(define reverselist (lambda (lat)
(cond
((null? lat) (quote()))
(else
(cons (reverselist (cdr lat)) (list (car lat)))))))
(reverselist (pseudofizzbuzz 10))
И результат я получаю:
((((((((((() 1) 2)()) 4)())()) 7) 8)())())
Но то, что я хочу, конечно, является:
(1 2 4 7 8)
Есть ли способ сделать это в схеме? Я использую DrRacket.