-
Notifications
You must be signed in to change notification settings - Fork 7
Frinj was never intended to be a clone of Fink, and thus does not support the entire Frink language. But since it's a Clojure DSL, it doesn't have to! There was a couple of reasons I decided to create frinj;
- I wanted the power of frink but with Clojure idioms.
- I love Frink, and wanted to learn more about it.
- Frink isn't open source.
- I wanted to have some fun.
Please note that all calculations in examples.clj
are taken from Frink's Sample Calculations Page
Alan Eliasen (@aeliasen) deserves all the praise.
No, Frinj is completely self contained, and only depends on clojure itself. See [project.clj] (https://github.com/martintrojer/frinj/blob/master/project.clj) for details.
The unit/prefix database is dynamic by it's nature. It's very easy to add new units and prefixes on the fly. The original Frink units file is incrementally built up (units depend on previously defined ones etc).
When Frinj starts, it reads the unit.clj file to set up the default set of units. You can easily reset back to this state if you happen to write over some units etc with (frinj.calc.frinj-init!).
Keeping it dynamic also allow to feed new units continuously into frinj from online sources (such as currency conversion factors) etc.
Currency, metal prices etc are fed into Frinj via Live Unit Feeds. If the communication with those services are interrupted some units might be missing (or stale!)