forked from laarc/laarc
-
Notifications
You must be signed in to change notification settings - Fork 1
/
as.scm
29 lines (23 loc) · 761 Bytes
/
as.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#lang racket/load
; racket -f as.scm
; (asv)
; http://localhost:8080
(require racket/runtime-path)
(define-runtime-path arc-scm "./arc.scm")
(load arc-scm)
(require 'arc)
(define args (vector->list (current-command-line-arguments)))
(define (safe-read x)
(arc-eval `(or (errsafe (coerce ,x 'num)) ,x)))
(if (> (length args) 0)
(let* ((repl (or (car? args "-i")
(car? args "--interact")))
(args (if repl (cdr args) args))
(name (car args))
(args (cdr args)))
(current-command-line-arguments (list->vector args))
(let* ((x (arc-eval `(load ,name)))
(args (map safe-read args)))
(when (procedure? x) (apply x args))
(when repl (interact))))
(interact))