(define (create-valid-numbers current)
(if (<= current max-val)
(begin
(if (and (>= current min-val) (<= current max-val))
(push current valid-numbers))
; creates numbers recursively
(dolist (d digits)
(create-valid-numbers (+ (* current 10) d))))))
(define (random-integer min-val max-val digits)
(let (valid-numbers'())
(dolist (d digits) (create-valid-numbers d))
(valid-numbers (rand (length valid-numbers)))))
(random-integer 1 300 '(1 2 3))
;-> 21
(time (println (random-integer 1 90000000 '(1 2 3 4 5 6 7))))
;-> 44377532
;-> 6875.421
(define (randint RANGE DIGITS)
(letn ((digits (fn (X) (map int (unique (explode (string X))))))
(wrong (fn (X) (difference (digits X) DIGITS)))
(S (clean wrong (apply sequence RANGE))))
(S (rand (length S)))))
Quote from: pber on April 15, 2024, 07:13:47 AMMany thanks, itistoday, for you effort on newLISP.
Quote from: pber on April 15, 2024, 07:13:47 AMI`m studing his codebase and I`m starting to feel a profound feeling of respect and regard for him and his code, which is great (IMHO).
I hope to publish something about my project (Ike) in order to find help from you Lisp coders.