Building a modern functional compiler from first principles. This is a work in progress.
haskel compiler book evaluation lambda-calculus type type-checking type-system pdf-book functional-programming functional-language hindley-milner type-inference type-theory intermediate-representationLJSON is a drop-in replacement for JSON which also allows you to parse and stringify pure functions and their contents. There are good security reasons for functions to be out of the JSON specs, but most of those are only significant when you allow arbitrary, side-effective programs. With pure functions, one is able to interchange code while still being as safe as with regular JSON. See this and more examples on the Examples directory.
json lambda-calculus functional-programming functionsThis is the distribution directory for the Kananaskis release of HOL4. See http://hol-theorem-prover.org for online resources. The following is a brief listing of what's available in the distribution.
theorem-proving lambda-calculus higher-order-logicO propósito desse repo é centralizar tudo que discutirmos na guilda de programação funcional, desde material de estudos até discussões e datas de reuniões. Algumas linguagens mais populares como JS, PHP e C# tem bastante suporte à programação funcional. libs dessa lista tem como objetivo entregar ferramentas para você extrair ao máximo os benefícios de funcional escondidos nelas.
lambda-calculus functional-programming ramda ramdajsAn Android app that lets you build, combine, modify, and evaluate expressions in the untyped lambda calculus, all using a touch interface. The app is available on the Play Store. There is also a demo video.
lambda-calculusAs a validating example, I've added a purely symbolic implementation of STLC: reduction rules are explicit and defined in terms of substitution, and normalization is proven a la the relevant chapter of Pierce's Software Foundations. The only difference to https://gallais.github.io/pdf/draft_fscd17.pdf is that the node constructor has a unified global view of all the subterms; in particular, of all the types of the subterms. The meaning of the well-typedness constraint wt is that it takes two collections of types: the types of the n newly bound variables, the types of the subterms; it also receives the type of the term just being constructed.
agda substitution lambda-calculus simply-typed-lambda-calculus normalizationPomagma is an inference engine for extensional untyped λ-join-calculus, a simple model of computation in which nondeterminism gives rise to an elegant gradual type system. Pomagma's base theory is being formally verified in the Hstar project.
lambda-calculus theorem-proving inference-engineA type checker and interpreter for simply typed lambda calculus written in JavaScript. Is correct and evaluates to 0.
lambda-calculus interpreter type-systemThis interpreter was written for this blog post and was based on the implementation showed in the book Types and Programming Languages.
lambda-calculus lambda interpreterThis repository demonstrates an implementation of lambda calculus in Scala types. More examples are found in TermSpec.scala.
typelevel lambda-calculusThis package implements the lambda calculus using interaction nets, providing CLI and API. Its browserified version is available as an online demo.
lambda-calculus interaction-netsLambda Calculus is a tiny functional language for expressing computation based on function abstraction and application. This project is intended to be an educational resource for learning and implementing functional programming languages.
lambda-calculus system-fImplementations of different lambda calculi with abstract binding trees.
lambda-calculus abstract-binding-trees haskell dependent-typesChurch encoding is a way of encoding data using only functions. For instance, we can use functions to represent, booleans, numerals and lists. Higher-order functions are all you need for Turing completeness. Check out the docs.
functional-programming lambda-calculus church-encoding combinatory-logic haskell alonzo boolean calculus car cdr church combinatory cons curry encoding functional lambda lisp list logic numeral pair predicateI built a Church encoding library too.
combinator functional-programming lambda-calculus combinatory-logic haskell bird birds calculus church combinators combinatory curry encoding functional i idiot k kestrel lambda logic s sage starling yA cleaned up adaptation of Lamping's abstract algorithm. It evaluates functions optimally by encoding a λ-term as (symmetric) interaction combinators, normalizing the resulting graph, and decoding it back. It asymptotically beats all usual evaluators of functional programs, including Haskell's GHC, Scheme compilers, Google's V8 and so on. Moreover, it is capable of automatically exploiting any inherent parallelizability of your program, since interaction nets are a naturally concurrent model of computation. This implementation consists of two files, a 100-LOC reducer for interaction combinators and a 71-loc conversor of λ-terms to and from those. This particular implementation isn't parallel, but is lazy: it doesn't perform any work that won't influence on the normal form. There is an inherent tradeoff between those. Rust implementation.
functional-programming lambda-calculus interaction-combinators interaction-netsA simple, clean and fast implementation of the λ-calculus on JavaScript. It has zero dependencies and only 2.65KB gzipped. It evaluates terms very efficiently by using native JS functions, which is possible thanks to a clever compile/readback algorithm based on JS semantics. It includes the most relevant IO formats - bruijn-indices, binary, base64 and the usual "Wikipedia syntax" - so you can easily export to/from other tools. You can also convert native JS functions to terms and back.
lambda-calculus functional-programmingelsa is a tiny language designed to build intuition about how the Lambda Calculus, or more generally, computation-by-substitution works. Rather than the usual interpreter that grinds lambda terms down to values, elsa aims to be a light-weight proof checker that determines whether, under a given sequence of definitions, a particular term reduces to to another.
lambda-calculus reduction haskell-learning haskellThe full report is online. Part 1 is here and part 2 is here.
ats-lang blockchain smart-contracts lambda-calculus functional-programming programming-language interpreter lisp parser commandline-interface blockchain-demo smart-contract-platformA collection of various programming exercises I have done in ATS. INTRO contains some introductory examples and an article I wrote about ATS and Functional Programming.
ats-lang functional-programming algorithms lambda-calculus sudoku dependent-types tail-recursion neural-network machine-learning compiler
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.