Comments (2)
Yep agreed on all. Performance is not big enough concern to warrant any targeted optimization but I would still like to keep the overhead to minimum. I've decided to keep it as is for now. We can think about this again at some point later..
from sabre.
If we go for option 1, I think we should at least give the empty interface a type, e..g: type Value interface{}
. This achieves two things:
- keeps things readable (avoids questions like "is this a Sabre
interface{}
or something else?) - allows us to easily add methods to the interface later, if needed.
Note that there is precedent for this approach.
Concerning option 2, I'm not sure what we obtain from having the Source()
method.
Option 3 is also fine. It avoids a type assertion, which has performance implications. I'm not sure how much we care about this, though.
Ultimately it's up to you -- I don't have strong feelings about this either way.
from sabre.
Related Issues (17)
- Support for metadata on symbols and collections
- Support for macros & special forms HOT 4
- Migrate parens standard library to sabre HOT 3
- Cannot build with GO111MODULE=1 HOT 8
- Dynamic namespace similar to Clojure HOT 5
- Member access for Go types from Sabre HOT 12
- Moving Slang to separate repository HOT 2
- Support goroutine invocation HOT 4
- Macro expansion mutates original list
- FYI: Clojure implemented in Go
- how to implement comments HOT 6
- golang package and test best practice HOT 8
- export more internal functions from specials.go HOT 11
- Sabre Experience Report HOT 11
- Invoke on List type
- Archive Sabre HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sabre.