Wondering what’s next for npm?Check out our public roadmap! »

    lisp-js-compiler
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.5 • Public • Published

    Lisp-JS

    This library is an extendable interpreter / compiler for Lisp intended for use in any JS environment as a secure sandboxed execution runtime.

    Example code:

    const { run } = require('./index')
     
    const code = `
      (process
        (def
          [sqrtIter x guess]
          (if
            [= (Math .abs (- x (* guess guess))) 0]
            guess
            (sqrtIter x (/ (+ guess (/ x guess)) 2))
          )
        )
        (def
          [sqrt x]
          (sqrtIter x 1)
        )
        (sqrt 9)
      )
    `
     
    let result = run({})(code)
     
    console.log(result)

    Roadmap

    • Port pausable interpreter to TypeScript
    • Implement a pausable interpreter
    • Improve README and docs
    • Support for comments (;) as a special form
    • Implement code generation
    • Implement a code generator for WebAssembly
    • Allow concurrent execution
    • Allow multi-threaded execution

    Goals

    • Build a language for Fractal over JS
    • Be simple and performant

    Docs

    • Language is described in LANGUAGE.md

    TODOs

    • Tests lambdas to capture values

    Install

    npm i lisp-js-compiler

    DownloadsWeekly Downloads

    17

    Version

    0.1.5

    License

    MIT

    Last publish

    Collaborators

    • avatar