|
|
|
|
|
by afandian
3849 days ago
|
|
`hackcasual` was saying that certain language features can be added as a library rather than needing to be integrated into the core language > "fundamentally it's functionality other languages can provide via library support" You were saying that CSP can be added as a library, citing Clojure's core.async. All I was saying was that the way in which core.async was implemented doesn't feel like a great example of a 'library' in the sense that most people would understand in the context of a discussion about Golang. Golang is a static, compiled-to-machine-code language without macros (in the LISP or C sense) or homoiconicity. The reason core.async can be implemented as a library in Clojure is that it has these things. If you're talking about adding CSP to a language just by adding a library and without having to get into the internals of the language, core.async isn't a good example. Again, happy to be corrected. |
|
I've also linked to js-csp, a JS library obviously not implemented using macros.
I can also find other examples of implementation as libraries, but I have no experience with them:
- Scala: https://github.com/rssh/scala-gopher
- F#: https://github.com/Hopac/Hopac
- C++: http://www.cs.kent.ac.uk/projects/ofa/c++csp/