1.7.0 • Published 7 years ago

pattern-guard v1.7.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Pattern-guard 💂 Build Status npm version Standard - JavaScript Style Guide

Greenkeeper badge

Pattern-guard is a small module that brings you the Haskell guards syntax in JavaScript.

Usage

const guards = require('pattern-guard')

const [a, b, c] = [1, 3, 7]

const result = guards({ a, b, c })`
  | a > b = 1337
  | b > c = 999
  | c > a = 42
  | c > b = 11
`

console.log(result) // 42

Please note that, like in Haskell, the first truthy guard will be returned.

Guards can also be inlined:

guards({ a, b, c })`a < b = 'yep' | b > c = 'nope' | c > a = 'maybe'`

And they support all comparison operators < <= == === !== != >= > and the logical operators too && || !.

In Haskell, the otherwise keyword is used as a catch-all. To avoid using this keyword as variable name, this logic is not implemented in the module, you can simply emulate the same behaviour by using true:

const [a, b, c] = [1, 2, 3]

const result = guards({ a, b, c })`
  | a > b = 'nope'
  | b > c = 'nope'
  | c < a = 'nope'
  | true = 'yep'
`

console.log(result) // 'yep'

Linting

The code quality is checked by the JavaScript Standard Style.

License

Released under the MIT license by Davy Duperron.

1.7.0

7 years ago

1.4.0

7 years ago

1.3.0

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago