Comments (3)
I personally prefer to use our own functions instead of reusing ones from Base. (Without exporting, we can still keep the same name)
Based on our discussions at #8 , a lesson I learned is, we can't use existing containers (like vectors, tuples...) and existing functions in Base together, otherwise conflicts like eltype
here is unavoidable.
So we have two choices:
a. Reuse built-in containers but dispatch based on our own function (names)
b. Reuse functions in Base but dispatch based on our customized containers.
In the prior release, I adopted the second approach. The drawback is obvious that we have to always define a Space
wrapper. Current code in the master branch seems to be shifting from #b to #a. But the interfaces like in
, rand
are still reused from Base. So maybe we should make a decision on it?
from commonrlspaces.jl.
Hmm... yes, thanks for pointing out that this is a fundamental problem.
If we have to completely commit to one of those, I vote for "a" because that is most obvious for someone defining a simple environment/problem, e.g. actions = [-1, 0, 1]
.
However, ideally, we should not need to make this choice because everyone would agree on the abstract meaning of in
, rand
, eltype
, and clamp
. Indeed, it has worked so far on everything except for eltype(1..2)
, and this may have just been an oversight (I'm asking in JuliaMath/IntervalSets.jl#115).
Another note is that we cannot fully follow the principle of defining our interface in the CommonRLSpaces module because we can't re-define the iteration interface. Iteration is more fundamental than, say, clamp
, but rand
is also pretty fundamental. Where do we draw the line?
I need to think about this more.
from commonrlspaces.jl.
If there are other example packages to consider, that might be helpful.
from commonrlspaces.jl.
Related Issues (9)
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 commonrlspaces.jl.