July 12, 2020
;; file: app.scm
(declare (standard-bindings) (extended-bindings) (not safe) (not run-time-bindings)) (declare (not standard-bindings append for-each))
(println “>>> app.scm”)
(define (fib n) (if (fx< n 2) n (fx+ (fib (fx- n 1)) (fib (fx- n 2)))))
(define (scmfoobar) (##inline-host-expression “array(88, 333)”))
(##inline-host-declaration “print(‘xxx’);”)
(println “jsdfsdf”)
(define lll (scmfoobar))
(define vvv #(“dudu” “vava”)) (define fff (scmfoobar))
(define (array-ref arr i) (##inline-host-expression “@1@[@2@]” arr i))
(define (array-length arr) (##inline-host-expression “count(@1@)” arr))
(define (for-vector vector proc) (let ((count (vector-length vector))) (let iter ((i 0)) (if (< i count) (begin (proc (vector-ref vector i) i) (iter (+ i 1)))))))
(define (for-array arr proc) (let ((count (array-length arr))) (let iter ((i 0)) (if (< i count) (begin (proc (array-ref arr i) i) (iter (+ i 1)))))))
(define xxxx (lambda (x) println x)) ( xxxx 888) (for-vector vvv println)
(define (superex x) (##inline-host-statement “var_dump(@1@);” fff))
(for-array fff println)
;(println (array-length fff)) ;(table-for-each fff println) ;(println lll)
;(for-each ; (lambda (x) ; (println (fib x)) ; (append ‘(1 2 3) ;’(4 5 6))
;(let* ((start (current-milliseconds)) ; (result (fib 35)) ; (end (current-milliseconds)) ; (js-alert (fx- end start)) ;; (js-alert result)))