owo-lang / Narc Rs
Licence: apache-2.0
(WIP) Dependently-typed programming language with Agda style dependent pattern matching
Stars: ✭ 58
Programming Languages
rust
11053 projects
Projects that are alternatives of or similar to Narc Rs
Qo
Qo - Query Object - Pattern matching and fluent querying in Ruby
Stars: ✭ 351 (+505.17%)
Mutual labels: pattern-matching
Meander
Tools for transparent data transformation
Stars: ✭ 617 (+963.79%)
Mutual labels: pattern-matching
Ingraph
Incremental view maintenance for openCypher graph queries.
Stars: ✭ 40 (-31.03%)
Mutual labels: pattern-matching
Defun
A macro to define clojure functions with parameter pattern matching just like erlang or elixir.
Stars: ✭ 432 (+644.83%)
Mutual labels: pattern-matching
Pikelet
A friendly little systems language with first-class types. Very WIP! 🚧 🚧 🚧
Stars: ✭ 485 (+736.21%)
Mutual labels: type-theory
Pampy
Pampy: The Pattern Matching for Python you always dreamed of.
Stars: ✭ 3,419 (+5794.83%)
Mutual labels: pattern-matching
Pampy.js
Pampy.js: Pattern Matching for JavaScript
Stars: ✭ 544 (+837.93%)
Mutual labels: pattern-matching
Cubicaltt
Experimental implementation of Cubical Type Theory
Stars: ✭ 461 (+694.83%)
Mutual labels: type-theory
Patterns
This is an experimental library that has evolved to P1371, proposed for C++23.
Stars: ✭ 479 (+725.86%)
Mutual labels: pattern-matching
Pcre Ocaml
OCaml bindings to PCRE (Perl Compatibility Regular Expressions)
Stars: ✭ 23 (-60.34%)
Mutual labels: pattern-matching
Whyhaskellmatters
In this article I try to explain why Haskell keeps being such an important language by presenting some of its most important and distinguishing features and detailing them with working code examples. The presentation aims to be self-contained and does not require any previous knowledge of the language.
Stars: ✭ 418 (+620.69%)
Mutual labels: pattern-matching
Typedefs
Programming language agnostic type construction language based on polynomials.
Stars: ✭ 337 (+481.03%)
Mutual labels: type-theory
Tiny Glob
Super tiny and ~350% faster alternative to node-glob
Stars: ✭ 710 (+1124.14%)
Mutual labels: pattern-matching
Matchete
A DSL for method overloading in Ruby based on pattern matching
Stars: ✭ 53 (-8.62%)
Mutual labels: pattern-matching
Ts Pattern
🎨 A complete Pattern Matching library for TypeScript, with smart type inference.
Stars: ✭ 854 (+1372.41%)
Mutual labels: pattern-matching
narc-rs
Narc is a dependently-typed programming language with Agda style dependent pattern matching.
It's called "Narc", but a rust crate narc
has already been registered,
thus the crate name is changed to nar
and the compiler binary is therefore narc
.
For language description, please head to the docs.rs page.
Resources
- Original Paper that Narc is based on
- Docs.rs documentation
- IntelliJ Plugin, which can export your code as clickable HTML
- Change Log, useful resource for tracking language evolution
- Binary Download on GitHub Actions page for Windows, Ubuntu and macOS
Install
The most recommended way of installation is to download the prebuilt binaries from GitHub Actions page. Here's how to find them.
You can install the narc type-checker by this command (cargo installation and rust stable toolchain are assumed):
cargo install nar --bin narc
After installation, you can type-check a narc file by:
narc [filename]
You can also start a REPL:
narc -i
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].