sabre icon indicating copy to clipboard operation
sabre copied to clipboard

Sabre is highly customisable, embeddable LISP engine for Go. :computer:

Results 11 sabre issues
Sort by recently updated
recently updated
newest added

I have finished migrating Wetware over to Slurp. We should archive this repository ASAP to avoid confusion.

Hi, how do I invoke an `Invokable` with `List` as its argument without the `List` is being evaluated? Here's a simple implementation to create a reduce function which requires the...

This PR has the new structure and types as per the discussions on #25 . New contracts are nested within a sub-package `sabre` for the time being (Just to make...

As part of [Wetware](http://github.com/wetware/ww), the need has arisen reimplement virtually every atom. Accordingly, I also need to adjust the map of predefined symbols to reflect my own implementation of `Nil`,...

I have been working on an implementation of the 'case' construct and the package layout including how tests are maintained is causing a bit of pain. I suggest moving the...

It is currently impractical to build specials outside sabre (eg my case implementation in #22) because functions like 'analyze' are not exported.

I'd like to be able to call a function in a separate goroutine using the following syntax: ```lisp (go (expensive-function arg1 arg2)) ``` A few design considerations: 1. Separate goroutines...

1. define a macro that returns `[]` on expansion : `(def my-macro (macro* [& rest] []))` 2. create a list that would invoke `my-macro` when evaluated: `(def a-list '(my-macro 1...

bug

I've just stumbled upon the [Joker language](https://github.com/candid82/joker), which is an implementation of Clojure in Go. I figured it might be of interest as inspiration for design.

Most of the Value types (except for Symbol, List, Vector, Set), return themselves on `Eval()`.. It seems like a redundant requirement to have all Values implement the `Eval()` method when...