Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add point-free converter? #1

Open
anton-trunov opened this issue Apr 29, 2020 · 2 comments
Open

Add point-free converter? #1

anton-trunov opened this issue Apr 29, 2020 · 2 comments
Assignees

Comments

@anton-trunov
Copy link

Basically a telegram version of https://github.com/keathley/pointfree.io.

Cool project, btw!

@vyorkin
Copy link
Owner

vyorkin commented Apr 29, 2020

Thanks :)

The idea is to build kind of a lightweight version of Lambdabot, but for Telegram instead of IRC. For now, it is just a naive implementation that I've put together in a few hours yesterday.

Yeah, the pointfree and pointfull is on my TODO list:

  • Safely running untrusted code
  • Defining persistent bindings for evaluation. The command /let x = 4 should set x to 4. /unlet deletes old definitions. Each user should have its own bindings.
  • Using Hoogle: /h [a] -> [a]
  • Pointfree refactoring using the pointfree package: /pf \xs n -> take n xs should output flip take.
  • Djinn: takes a type signature and constructs a function satisfying it: /djinn (a, b) -> c -> (b, c) should output smth like f (_, a) b = (a, b)
  • What type does a monad transformer wrap? /unmtl StateT s IO a ==> s -> IO (a, s)
  • Do-syntax desugaring: Convert do notation to bind notation: /undo do { x <- getLine; print x } ==> getLine >>= \ x -> print x

@vyorkin vyorkin self-assigned this Apr 29, 2020
@anton-trunov
Copy link
Author

Awesome plan! Thank you for sharing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants