Coder Social home page Coder Social logo

lamreducer's Introduction

README -- LambdaReducer.hs

--------------------------

Features:
-Performs proper alpha reduction techniques, then applies beta reduction until it cannot, then applies eta reduction until it cannot.

-Returns a fully reduced lambda expression as computed using applicative ordering techniques.

--------------------------

Potential Bugs:
-Alpha renaming will produce an alpha equivalent expression to that of the expected output in the assignment description. There is only the ability for 26 total variable names, I could make it do more but I figured that that was not the purpose of the assignment.
	-Previously, I had implemented it so that it just adds a number to the end of the variable to be renamed. That may be safer, but this looks better. If theres something wrong with the alpha renaming, such as renaming something to an already used variable - that is easily fixed by changing <Atom (pickFreshVar (allVars e))> in line 52 with <Atom (x ++ "1")>. This now appends a 1 to the end of variables when renaming, creating NEW variable names and not just trying to find one that's not been used previously.

lamreducer's People

Contributors

nmcglo avatar nmcglohon avatar

Watchers

James Cloos avatar  avatar

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.