
Security News
PEP 810 Proposes Explicit Lazy Imports for Python 3.15
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
Chemical programming framework based on Banâtre's Gamma
Please see API.md for the documentation of Burette.
Explanation of the examples can be found in examples.md.
Only four (or three and a half) core concepts to understand:
This simple example calculates the majority element:
const Burette = require('burette');
const Solution = Burette.Solution;
const Tropes = Burette.Tropes;
const majority = Tropes.Selector((x, y) => x !== y);
const keepOne = Tropes.Reducer((x, y) => y);
Solution.seq([1, 2, 3, 4, 5, 5, majority], keepOne, [])
.react()
.then(s => console.log(s.multiset));
// Output: [ 5 ]
Chemical programming (CP) is not about chemistry-related computations. Instead CP takes advantage of the chemical reaction model to establish a new programming paradigm and express computations.
Gamma is a formalism proposed by Jean-Pierre Banâtre in 1986, that kickstarted the CP scene. The most important structure in Gamma is the multiset. In a multiset elements does not have to be unique as opposed to the traditional mathematical set. Molecules in this multiset can interact freely and this interaction corresponds to execution. Of course two numbers can hardly interact in any way. But we have reactions, that can take elements from the multiset and emit new elements (or even nothing, for example in the case of an annihilator).
A reactions consists of a reaction condition and an action. If an element satisfies the condition then it's taken out of the multiset and replaced by the results of the action. Multiple parallel reactions can be carried out because no element can be used by two reactions.
For more information on Gamma please read the following article:
Gamma and the Chemical Reaction Model: Fifteen Years After
The aim of Burette is to provide a framework that can be used in production and to enable developers to experience the CP paradigm. Therefore some aspects of Gamma may be altered or even left out if needed. But the core principle remains the same.
I hope that Burette can raise some awareness towards the fascinating world of chemical programming!
FAQs
Chemical programming framework based on Banatre's gamma-calculus.
We found that burette demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.