1.1.0 • Published 2 years ago

dahai-mvl v1.1.0

Weekly downloads
22
License
MIT
Repository
gitlab
Last release
2 years ago

dahai-mvl NPM version

An implementation of Łukasiewicz Trilean Logic in Java and Typescript.

Install Java

Install with maven and others

<dependency>
  <groupId>uk.dahai.open</groupId>
  <artifactId>mvl</artifactId>
  <version>0.0.22</version>
</dependency>

Install Typescript

Install with npm:

$ npm install --save dahai-mvl

Install with yarn:

$ yarn add dahai-mvl

Install with bower

$ bower install dahai-mvl --save

Usage

Consider the function which returns a boolean to indicate if it rained on a certain date.

 wasItSunnnyOn( isoDate: string ): boolean 

If it was sunny you get a 'true' if not 'false'.

However, what is to be done if there is a data gap? Or if the date provided is in the future? Or perhaps if supporting data-service is down?

A null could be returned, or perhaps an exception raised? A trilean would allow you to return 'unknown' and handle these possibilities as part of the normal flow of execution:

itWasSunnnyOn( isoDate: string ): Trit;

const battleOfHastings = "1066-10-14";

if ( isTrue( itWasSunnnyOn( battleOfHastings ) ) )
    console.log( 'Great lets party!' );
else if ( isFalse( itWasSunnnyOn( battleOfHastings ) ) )
    console.log( 'Some other time!' );
else if ( isUnknown( itWasSunnnyOn( battleOfHastings ) ) )
    console.log( 'Lets check another service that!' );

You can map to and from booleans by using coalesce and booleanValue:

coalesce( null ) === Trilean.U

Trilean.U.booleanValue === null;
isTrue( Trilean.T ) === true;
isFalse( Trilean.F ) === false;
isKnown( Trilean.U ) === false;
isUnknown( Trilean.U ) === true;

Contributing

The project is available on gitlab contributions and bug reports welcome.

Running tests

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install && npm test

Author

Richard Bourner

License

Copyright © 2017, Richard Bourner. Released under the MIT License.

1.1.0

2 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago