Я вижу проблему при замене порядка параметров на функцию -
.Почему параметр порядка `` `вызывает у Racket REPL нехватку памяти?
; source
(define (compose f g) (lambda (x) (f (g x))))
(define (repeated f n)
(if (= n 1)
f
(compose f (repeated f (- 1 n))) ; causes an out of memory error
(compose f (repeated f (- n 1))) ; runs without issue
))
(define (square n) (* n n))
((repeated square 2) 6) ; 1296
; REPL
> > Racket virtual machine has run out of memory; aborting
Aborted (core dumped)
Проблема стоит, если я жестко задал значение. Кроме того, проблема не применяется, если я увеличиваю n
, используя +
.