Socket
Socket
Sign inDemoInstall

p

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    p

pattern matching in javascript for asyncronous iteration


Version published
Weekly downloads
362
decreased by-35.36%
Maintainers
1
Install size
13.6 kB
Created
Weekly downloads
 

Readme

Source
# pattern

pattern is a way to do pattern matching in javascript that helps you do asynchronous iterations

// check `samples/nodetuts.js` for working code
insert_all([], function () { console.log('done'); });
insert_all(_, function (l) {
  insert_element(l.shift(), function (elem) {
    console.log('‣ ', elem);
    insert_all(l);
  });
});

insert_all([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

the first pattern in pattern sets the arity of the function to execute

// first call sets arity #1
// when this condition is met it logs the message done
insert_all([], function () { console.log('done'); });

then we normally register the iteration pattern:

// var _; was set in the top, value is undefined
insert_all(_, function (l) {

if you then call insert_all where the argument count matches arity, pattern knows its time to execute

// one argument, arity #1
// run forest, run
insert_all([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

this is the code you would normally write to do the same thing in javascript

# installation ## node.js
  1. install npm
  2. npm install p
  3. var p = require('p');
# samples

there are samples in the samples directory. check them out

# disclaimer

if you are not familiar with haskell and you love your javascript object oriented code you better look away right now. this pretty much breaks everything you love and care about in javascript

pattern was made so i could learn some more javascript. it's slow, and certainly not web scale

this software does not obey laws, common best practices, or even common sense

it does everything that is wrong in javascript; or at least attempts to (suggestions are welcome)

i'll probably still use it anyway

# roadmap

pointfree style (note i'm just kidding)

# contribute

everyone is welcome to contribute. patches, bug-fixes, new features

  1. create an issue so the community can comment on your idea
  2. fork pattern
  3. create a new branch git checkout -b feature_name
  4. create tests for the changes you made
  5. make sure you pass both existing and newly inserted tests
  6. commit your changes
  7. push to your branch git push origin feature_name
  8. create an pull request
# meta

(oO)--',- in caos

# license

copyright 2012 nuno job <nunojob.com> (oO)--',--

licensed under the apache license, version 2.0 (the "license"); you may not use this file except in compliance with the license. you may obtain a copy of the license at

http://www.apache.org/licenses/LICENSE-2.0

unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "as is" basis, without warranties or conditions of any kind, either express or implied. see the license for the specific language governing permissions and limitations under the license

Keywords

FAQs

Last updated on 19 Feb 2012

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc