Giter VIP home page Giter VIP logo

racket-trx's Introduction

TRX - Tree Regular Expressions for Racket

Author: Joseph Irwin

Overview

This is a library for matching trees in Racket, based on a paper by Ilya Bagrak and Olin Shivers:

[trx]: Ilya Bagrak and Olin Shivers. trx: Regular-tree expressions, now in Scheme. In Proceedings of the Fifth Workshop on Scheme and Functional Programming, pages 21-32, Snowbird, Utah, September 2004.

According to the paper, the code should be included in scsh, but it doesn't seem to exist anywhere on the Internet, so I decided to reimplement it myself (in Racket). My (admittedly un-expert) impression is that macros in Racket are much easier to write than the low-level macros in scheme48.

Status

Missing:

  • let and letrec forms
  • submatches

Other than the above, the basic functionality is there, including recursive patterns.

How to Use

I wouldn't. But if you really must, read the paper and try out some of the examples.

Copying

CC0

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.

racket-trx's People

Contributors

cordarei avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

chenkovsky

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.