Self-describing numbers: Difference between revisions

Content added Content deleted
(Updated notes second D entry)
(Added Racket code)
Line 1,146: Line 1,146:
[5, 2, 1, 0, 0, 1, 0, 0, 0]
[5, 2, 1, 0, 0, 1, 0, 0, 0]
[6, 2, 1, 0, 0, 0, 1, 0, 0, 0] </pre>
[6, 2, 1, 0, 0, 0, 1, 0, 0, 0] </pre>

=={{header|Racket}}==
<lang Racket>#lang racket
(define (get-digits number (lst null))
(if (zero? number)
lst
(get-digits (quotient number 10) (cons (remainder number 10) lst))))

(define (self-describing? number)
(define digits (get-digits number))
(for/fold ((bool #t))
((i (in-range (length digits))))
(and bool
(= (count (lambda (x) (= x i)) digits)
(list-ref digits i)))))</lang>

Sadly, the implementation is too slow for the optional task, taking somewhere around 3 minutes to check all numbers below 100.000.000


=={{header|REXX}}==
=={{header|REXX}}==