js-maker Use Cases
1 Random number
2 Unique values
3 Indexed access
4 Named let loop
5 Function value
6 DOM setter
9.2

js-maker Use Cases🔗ℹ

Hans Dijkema <hans@dijkewijk.nl>

 (require js-maker/demo/js-usecases) package: js-maker

The demos in "demo/js-usecases.rkt" use only the public js macro and the compact js-maker 3 form set. They are intentionally small: their purpose is to show the supported surface language, not to recreate the larger runtime-helper branch.

1 Random number🔗ℹ

(js
 (define (randomBetween1And5)
   (return (+ (send Math floor (* (send Math random) 5)) 1))))

2 Unique values🔗ℹ

(js
 (define (uniqueValues xs)
   (return (send Array from (new Set xs)))))

3 Indexed access🔗ℹ

(js
 (define (arrayAt xs i)
   (return (js-ref xs i))))

4 Named let loop🔗ℹ

(js
 (define (sumTo n)
   (let loop ([i 0] [acc 0])
     (if (> i n)
         (return acc)
         (loop (+ i 1) (+ acc i))))))

5 Function value🔗ℹ

(js
 (define (makeAdder x)
   (return (lambda (y)
             (return (+ x y))))))

6 DOM setter🔗ℹ

(js
 (define (setHtml id html)
   (let ([el (send document getElementById id)])
     (set! (js-dot el innerHTML) html)
     (return (js-dot el innerHTML)))))