Matchete provides a DSL for method overloading based on pattern matching for Ruby. Copyright (c) 2015 Alexander Ivanov. See LICENSE for further details.
https://github.com/alehander42/matcheteTags | gem dsl pattern-matching |
Implementation | Ruby |
License | MIT |
Platform | Windows Linux |
Pattern matching is an abstraction mechanism that can greatly simplify source code. Commonly, pattern matching is built into a language to provide better syntax, faster code, correctness guarantees and improved diagnostics. Mach7 is a library solution to pattern matching in C++ that maintains many of these features. All the patterns in Mach7 are user-definable, can be stored in variables, passed among functions, and allow the use of open class hierarchies. Next example demonstrates that the library can deal efficiently and in a type-safe manner with non-polymorphic classes like boost::variant as well.
pattern-matching pattern variant visitor visitor-pattern algebraic-data-types adtEgison is the pattern-matching-oriented purely functional programming language. We can directly represent pattern-matching against lists, multisets, sets, trees, graphs and any kind of data types. This is the repository of the interpreter of Egison. For more information, visit our website.
egison programming-language functional-programming pattern-matching computer-algebra-system tensor differential-geometryNRules is an open source production rules engine for .NET, based on the Rete matching algorithm. Rules are authored in C# using internal DSL. Use the following resources to get up and running with NRules.
rules-engine rete c-sharp rules nrules dsl rule-engineeasier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.a pattern is immutable after construction. none of its methods changes its state. that makes it easier to reason about.
url string matching pattern routing route regex match segment parsing parser parse combinator combinators custom customizable filepath path domain separator stringify generate text processingA macro to define clojure functions with pattern matching just as erlang or elixir. It supports both clojure and clojurescript. Since 0.3.0-RC, defun namespace is renamed to defun.core .
defun pattern-matching clojure-functionsMatches.js brings the power and expressiveness of pattern matching to Javascript. Check for specific values using number or string literals, null, or undefined.
matching patterns pattern match functionalSparkler is a pattern matching engine for JavaScript built using sweet.js macros, so it looks and feels like native syntax. It has no runtime dependencies and compiles down to simple ifs and fors. Sparkler overloads the function keyword as a macro (don't worry, all your old functions will still work) but implements a slightly different syntax. There's no argument list after the name or function keyword. Instead the function body is just a set of ES6 style arrow-lambdas separated by commas.
pattern matching patterns matches functional macro macros sweet-macrosThis proposal adds a pattern matching expression to the language, based on the existing Destructuring Binding Patterns. There's many proposals potentially related to this one, and other proposals might mention interaction with this. This file includes casual, example-based discussion of the proposal, and there's also a document describing the core semantics in more formal language, which will be iterated over into the final Spec-ese.
RubyDNS is a high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon. By default it uses rule-based pattern matching. Results can be hard-coded, computed, fetched from a remote DNS server or fetched from a local cache, depending on requirements. There are lots of examples available in the examples/ directory.
dns-server resolver rubydns asynchronousNote that when() is a catch-all pattern and, if used, should always be the last condition. If you forget it match() will throw a MissingCatchAllPattern exception if nothing was matched.
pattern-matching pattern match whenIn the simulator, the memory sweeper is loaded from a bundle inside the plugin using lldb requiring no changes to the app's project source. To use the plugin, build this project and restart Xcode. Once your application is running, use menu item "Product/Xprobe/Load" to load the initial view of the memory sweep of your app. If you are a plugin developer you use "Product/Xprobe/Xcode" to inspect the objects of the Xcode application itself. You can then filter the objects listed into the app or their methods using a pattern. If there are no objects matching the pattern and it is a class name it will be displayed. Patterns prefixed with '+' or '-' will search all classes linked into the application for methods matching the pattern. A raw pointer prefixed with "0x" can be entered to inspect an object passed as an argument to a trace. You can also enter an object "path" starting "seed." from the paths logged as you browse your application so you can find your way back to objects easily.
xcode-plugin reverse-engineeringProp is a pattern matching language based on C++. It implements algebraic datatypes, pattern matching and rewriting, and generates C++ code as output.
This project brings some features from functional languages, like pattern matching, collection unfold or partial function application to C# and extends the possibilities of functional programming in C#. It's available as C# library.
functional pattern-matchingA tiny functional programming library for Javascript/Coffeescript.
pun functional pattern-matchingHemera (/ˈhɛmərə/; Ancient Greek: Ἡμέρα [hɛːméra] "day") is a small wrapper around the NATS driver. NATS is a simple, fast and reliable solution for the internal communication of a distributed system. It chooses simplicity and reliability over guaranteed delivery. We want to provide a toolkit to develop micro services in an easy and powerful way. We provide a pattern matching RPC style. You don't have to worry about the transport. NATS is powerful.Hemera has not been designed for high performance on a single process. It has been designed to create lots of microservices doesn't matter where they live. It choose simplicity and reliability as primary goals. It act together with NATS as central nervous system of your distributed system. Transport independency was not considered to be a relevant factor. In addition we use pattern matching which is very powerful. The fact that Hemera needs a broker is an argument which should be taken into consideration when you compare hemera with other frameworks. The relevant difference between microservice frameworks like senecajs, molecurer is not the performance or modularity its about the complexity you need to manage. Hemera is expert in providing an interface to work with lots of services in the network, NATS is the expert to deliver the message at the right place. Hemera is still a subscriber of NATS with some magic in routing and extensions. We don't have to worry about all different aspects in a distributed system like routing, load-balancing, service-discovery, clustering, health-checks ...
nodejs distributed-systems microservice nats pubsub rpc cloud-native micro service micro-service microservices micro-services services framework minimum viable product toolkit startup messaging publish subscribe queue distributed queueingPatternoids is a powerful object-oriented pattern matching/replacement engine written on top of Python regular expressions. It provides a set of classes which allow you to perform matching amp; replacing content in plain/structured text files.
Zxcvbn-PHP is a password strength estimator using pattern matching and minimum entropy calculation. Zxcvbn-PHP is based on the Javascript zxcvbn project from Dropbox and @lowe. "zxcvbn" is bad password, just like "qwerty" and "123456". zxcvbn attempts to give sound password advice through pattern matching and conservative entropy calculations. It finds 10k common passwords, common American names and surnames, common English words, and common patterns like dates, repeats (aaa), sequences (abcd), and QWERTY patterns.
CAF is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more. The easiest way to build CAF is to use the configure script. Other available options are using CMake directly or SNocs.
actor-model caf cpp11 pattern-matching actors asyncThe Presenter First DSL is a modeling tool for the Presenter First pattern.
presenter-first domain-specific-lang dsl dsl-tools mylist patternsWeasel Diesel is a DSL to describe and document your web API. To get you going quickly, see the generator for sinatra apps. The wd_sinatra gem allows you to generate the structure for a sinatra app using Weasel Diesel and with lots of goodies. Updating is trivial since the core features are provided by this library and the wd_sinatra gem.
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.