Continued fraction/Arithmetic/Construct from rational number: Difference between revisions

m
→‎{{header|Racket}}: Some improvements
m (→‎{{header|Racket}}: Some improvements)
Line 479:
 
=={{header|Racket}}==
<lang racket>#lang racket
#lang racket
 
(define ((r2cf n d))
(lambdaor (zero? d)
(let-values ([(q r) (quotient/remainder n d)])
(if (zero? d)
null(set! n d)
(let-valuesset! ([(qd r) (quotient/remainder n d)])
(set! n dq)))
(set! d r)
q))))
 
(define (r->cf n d)
(for/list ([i (in-producer (r2cf n d) null#t)]) i))
i))
 
(define (real->cf x places)
(let*define ([d (expt 10 places)])
(define [n (exact-floor (* x d))])
(r->cf n d)))
 
(map r->cf
(list 1 3 23 13 22 -151)
(list 2 1 8 11 7 77))
 
(map r->cf
'(1 3 23 13 22 q)))-151)
'(2 1 8 11 7 (set! d r77))
(real->cf (sqrt 2) 10)
(real->cf pi 10)</lang>
</lang>
 
{{out}}