Name | Modified | Size | Downloads / Week |
---|---|---|---|
nexj-scheme-ecore-adapter | 2011-02-03 | ||
README.txt | 2011-02-03 | 3.4 kB | |
nexj-src-oss-scheme-v7.1.13.0.zip | 2011-02-02 | 351.4 kB | |
nexj-src-oss-scheme-v0.1.zip | 2009-10-09 | 239.6 kB | |
Totals: 4 Items | 594.4 kB | 0 |
Welcome to NexJ Scheme ====================== NexJ Scheme is an open source project providing an efficient and powerful interpreter for the programming language Scheme that executes in a Java virtual machine. NexJ Scheme offers: - support for Revised^6 Report on the Algorithmic Language Scheme (R6RS) - efficient execution of Scheme code - access to the JVM and Java objects directly from Scheme code Join the NexJ Scheme community at http://nexj-scheme.org/ This software is licensed under the Eclipse Public License. See the file EPL-1.0.txt, included with this distribution. Getting Started with NexJ Scheme -------------------------------- To run the REPL interactively first build the JAR file and then invoke it. C:\> ant nexj-scheme.jar C:\> java -jar nexj-scheme.jar Other ant tasks of interest: - doc : generate Javadoc from the codebase - clean : remove all of the files generated by the ant tasks - nexj-oss-scheme.jar : compile the Java files and bundle the object and source files into the JAR file Running the NexJ Scheme Interpreter =================================== Once running, you interact with the NexJ Scheme interpreter simply by typing Scheme expressions: C:\> java -jar nexj-scheme.jar Feb 1, 2011 2:13:21 AM nexj.core.util.log.j2se.J2SELogger log INFO: Using system configuration properties ; NexJ Scheme > (+ 2 5) ; 7 > "hello world!" ; "hello world!" > (define msg "hello world!") ; "hello world!" > msg ; "hello world!" > (string-length msg) ; 12 > (* (string-length msg) 2) ; 24 Using Scheme Libraries ====================== You can load a file of Scheme commands using the (load) function. Say for example you have a file named 'utils.scm' containing: (import 'java.lang.System) (define (add-them-up a b) (+ a b)) (define exit (lambda () (java.lang.System'exit 0))) Then you can use the function add-them-up with: C:\> java -jar nexj-scheme.jar Feb 1, 2011 2:15:09 AM nexj.core.util.log.j2se.J2SELogger log INFO: Using system configuration properties ; NexJ Scheme > (load "utils.scm") ; () > (add-them-up 3 4) ; 7 > (exit) C:\> Invoking Java ============= With its core being written in Java, the NexJ Scheme engine allows transparent invocation of Java code while being free of typing. For example: (import 'java.util.ArrayList) (define numbers (java.util.ArrayList'new)) (for ((i 0)) (< i 10) (set! i (+ i 1)) (numbers'add i) ) (for ((it (numbers'iterator))) (it'hasNext) () (write (it'next)) ) Determining NexJ Scheme Version =============================== The version of the NexJ Scheme engine you are running can be accessed from its engine code: (import 'nexj.core.version.Version) (nexj.core.version.Version'RELEASE) Exiting the NexJ Scheme Console =============================== There are various ways to exit the interpreter. Depending on which console you are using, you may have different results: - press Ctrl-C - press Ctrl-D (possibly followed by ENTER) - press Ctrl-Z (possibly followed by ENTER) - run the script: (java.lang.System'exit 0) - close the console window