An open API service indexing awesome lists of open source software.

https://github.com/awalterschulze/ragax

A Talk on Ragalur Expressions
https://github.com/awalterschulze/ragax

ableton-live brzozowski-derivative context-free-grammar golang haskell javascript maxmsp music-generation playground regular-expression slide validation

Last synced: 5 months ago
JSON representation

A Talk on Ragalur Expressions

Awesome Lists containing this project

README

          

# A Talk on Ragalur Expressions

Using Ragas, scales from Indian Classical Music, you will get to know the Brzozowski Derivative.
The Brzozowski Derivative is a more intuitive way to match strings using Regular Expressions, than the standard Thompson's construction algorithm.
Functional concepts such as Laziness, Memoization and Least Fixed Point can enhance the capabilities of Derivatives to even validate Recursive Regular Expressions (Context Free Grammars).
Finally we'll see what I use derivatives for.

## Videos

After giving the talk several times, I have turned it into a series of videos and blog posts:

### Brzozowski's Derivatives of Regular Expressions (1/4)


Watch the video

#### Blog Post


How to take the Derivative of a Regular Expression explained

### Ragax - Extending Regex Derivatives to Context Free Grammars (2/4)


Watch the video

### Generating Ragas using Brzozowski Derivatives for Regular Expressions with Ableton Live and Max MSP (3/4)


Watch the video

### Relaxing Raga (Indian Classical Music) Computer Generated (4/4)


Watch the video

## Slides

The [slides](https://github.com/awalterschulze/ragax/raw/gh-pages/latex/ragax.pdf) are located in the latex folder.
If you missed the talk you can also download the [slides with notes](https://github.com/awalterschulze/ragax/raw/gh-pages/latex/ragax-with-notes.pdf) which include my exact speech as notes.

## Demos

The code is split into 2 projects:

- ragabot: the albeton, maxjs and javascript folders. Open the albeton live project and start playing.
- playground: the golang and root folders. Open the [playground website](http://awalterschulze.github.io/ragax/).

## Locations

I have given this talk 7 times:

- [Functional Programming Cape Town Meetup](http://www.meetup.com/Cape-Town-Functional-Programmers/events/229984534/) Scarborough, Cape Town, South Africa - April 2016
- Technopark, Stellenbosch, South Africa - May 2016
- Jexia, Apeldoorn, The Netherlands - May 2016
- eBay Office, Amsterdam, The Netherlands - May 2016
- [Stellenbosch University, Stellenbosch, South Africa](http://www.meetup.com/Stellenbosch-Computer-Science-Meetup/events/231041690/) - June 2016
- eBay Office, Amsterdam, The Netherlands - April 2018
- [Functional Programming Amsterdam Meetup](https://www.meetup.com/fp-ams/events/249766439/), Amsterdam, The Netherlands - May 2018