Object Oriented Programming in Mathematica 10+
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
MTools
.MathematicaResources
.project
BootstrapInstall.m
LICENSE
README.md

README.md

MTools

release v0.4.5 Semantic Versioning license MIT Mathematica 10.0

The main contribution of MTools is to allow object oriented programming in Mathematica in a very natural way .

The package also contains:

  • Generic classes for manipulating trees of objects and displaying them
  • Automatic interface generation for displaying and editing objects
  • Functions for doing asynchronous evaluation easily using parallel kernels (MSync)
  • Tools for accessing Couchbase, serializing and deserializing objects.

Usage example

You can find usage examples on the Wolfram Community site and in the answer to "Once more on object orientation..." question on Mathematica Stack Exchange.

More examples will be added in the MTools.nb notebook located in the MTools package.

Installation

Automatic installation

To install the MTools package evaluate:

Get["https://raw.githubusercontent.com/faysou/MTools/master/BootstrapInstall.m"]

Note that this will also install the ProjectInstaller package, if you don't have it already installed.

To load the MTools package evaluate: Needs["MTools`"].

Manual installation

  1. Download the latest released MTools.zip file.

  2. Extract the downloaded MTools.zip file to any directory which is on the Mathematica $Path, e.g. to one obtained by evaluating FileNameJoin[{$UserBaseDirectory,"Applications"}].

  3. To load the package evaluate: Needs["MTools`"]

Compatibility

This package requires Mathematica 10 and above, as it makes extensive use of Association.

Bugs and requests

If you find any bugs or have feature requests please create an issue on GitHub.

Contributing

Feel free to fork and send pull requests.

All contributions are welcome!

License

This package is released under The MIT License.

Attribution

I used as template the README of the ClasslessObjects project.

I used the following contributions posted by people on Mathematica StackExchange for some functions in the Utils.m package:

Versioning

Releases of this package will be numbered using Semantic Versioning guidelines.