UNPKG

extra-boolean

Version:

Boolean data type has two possible truth values to represent logic.

136 lines (108 loc) โ€ข 5.62 kB
[Boolean] data type has two possible truth values to represent logic.<br> ๐Ÿ“ฆ [Node.js](https://www.npmjs.com/package/extra-boolean), ๐ŸŒ [Web](https://www.npmjs.com/package/extra-boolean.web), ๐Ÿ“œ [Files](https://unpkg.com/extra-boolean/), ๐Ÿ“ฐ [Docs](https://nodef.github.io/extra-boolean/). ๐Ÿ“˜ [Wiki](https://github.com/nodef/extra-boolean/wiki/). A **boolean** data type has two possible truth values, usually represented as `true` or `false`. It is named after *George Boole*, who first defined an algebraic system of logic in the mid 19th century [(REF)][01wiki]. Boolean functions can be used to perform logical operations in computer programming, such as in conditional statements, loops, and branching, to compare input values with a set of rules to determine the output. This is a collection of common boolean functions. It includes the basic gates [not], [and], [or], [xor]; their complements [nand], [nor], [xnor]; and 2 propositional logic (taught in discrete mathematics) gates [imply], [eq]; and their complements [nimply], [neq]. There is also a multiplexer, called [select], and a `true` counter, called [count]. [count] can help you make custom gates, such as an *alternate* concept of **xnor** which returns `true` only if all inputs are the same (standard [xnor] returns `true` if even inputs are `true`). These gates can handle up to eight inputs. The [parse] function is influenced by [(boolean)] package, and is quite good at translating `string` to `boolean`. It can also handle double negatives, eg. `not inactive`. You know the [and] of 2-inputs, but what of 1-input? What of 0? And what of the other gates? I answer them here. This package is available in *Node.js* and *Web* formats. To use it on the web, simply use the `extra_boolean` global variable after loading with a `<script>` tag from the [jsDelivr CDN]. [01wiki]: https://en.wikipedia.org/wiki/Boolean_data_type [Boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean [(boolean)]: https://www.npmjs.com/package/boolean [jsDelivr CDN]: https://cdn.jsdelivr.net/npm/extra-boolean.web/index.js > Stability: [Experimental](https://www.youtube.com/watch?v=L1j93RnIxEo). <br> ```javascript const xboolean = require('extra-boolean'); // import * as xboolean from "extra-boolean"; // import * as xboolean from "https://unpkg.com/extra-boolean/index.mjs"; (deno) xboolean.parse('1'); xboolean.parse('not off'); xboolean.parse('truthy'); // โ†’ true xboolean.parse('not true'); xboolean.parse('inactive'); xboolean.parse('disabled'); // โ†’ false xboolean.imply(true, false); // โ†’ false xboolean.eq(false, false); // โ†’ true xboolean.xor(true, true, true); // โ†’ true xboolean.select(1, true, false, true); // โ†’ false ^ xboolean.count(true, false, true); // โ†’ 2 ^ ^ ``` <br> <br> ## Index | Property | Description | | ---- | ---- | | [is] | Check if a value is boolean. | | [parse] | Convert a string to boolean. | | | | | [not] | Check if a boolean is false. | | [imply] | Check if antecedent โ‡’ consequent. | | [nimply] | Check if antecedent โ‡ consequent. | | [eq] | Check if antecedent โ‡” consequent. | | [neq] | Check if antecedent โ‡Ž consequent. | | | | | [and] | Check if all booleans are true. | | [nand] | Check if any boolean is false. | | [or] | Check if any boolean is true. | | [nor] | Check if all booleans are false. | | [xor] | Check if odd number of booleans are true. | | [xnor] | Check if even number of booleans are true. | | | | | [count] | Count number of true booleans. | | [select] | Check if iแต—สฐ boolean is true. | <br> <br> ## References - [boolean package : Golo Roden and contributors](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference) - [MDN Web docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference) <br> <br> [![](https://img.youtube.com/vi/6mMK6iSZsAs/maxresdefault.jpg)](https://www.youtube.com/watch?v=6mMK6iSZsAs)<br> [![ORG](https://img.shields.io/badge/org-nodef-green?logo=Org)](https://nodef.github.io) [![DOI](https://zenodo.org/badge/162931162.svg)](https://zenodo.org/badge/latestdoi/162931162) [![Coverage Status](https://coveralls.io/repos/github/nodef/extra-boolean/badge.svg?branch=master)](https://coveralls.io/github/nodef/extra-boolean?branch=master) [![Test Coverage](https://api.codeclimate.com/v1/badges/4df603a5ea361f324e9f/test_coverage)](https://codeclimate.com/github/nodef/extra-boolean/test_coverage) [![Maintainability](https://api.codeclimate.com/v1/badges/4df603a5ea361f324e9f/maintainability)](https://codeclimate.com/github/nodef/extra-boolean/maintainability) ![](https://ga-beacon.deno.dev/G-RC63DPBH3P:SH3Eq-NoQ9mwgYeHWxu7cw/github.com/nodef/extra-boolean) [is]: https://github.com/nodef/extra-boolean/wiki/is [parse]: https://github.com/nodef/extra-boolean/wiki/parse [not]: https://github.com/nodef/extra-boolean/wiki/not [imply]: https://github.com/nodef/extra-boolean/wiki/imply [nimply]: https://github.com/nodef/extra-boolean/wiki/nimply [eq]: https://github.com/nodef/extra-boolean/wiki/eq [neq]: https://github.com/nodef/extra-boolean/wiki/neq [and]: https://github.com/nodef/extra-boolean/wiki/and [nand]: https://github.com/nodef/extra-boolean/wiki/nand [or]: https://github.com/nodef/extra-boolean/wiki/or [nor]: https://github.com/nodef/extra-boolean/wiki/nor [xor]: https://github.com/nodef/extra-boolean/wiki/xor [xnor]: https://github.com/nodef/extra-boolean/wiki/xnor [count]: https://github.com/nodef/extra-boolean/wiki/count [select]: https://github.com/nodef/extra-boolean/wiki/select