Git Product home page Git Product logo

haskle's Introduction

Haskle

Haskle is a little wordle-like game, where the goal is to guess a function from its (obfuscated) type. After each try, the type is partially revealed, and when the type is revealed, the name of the function starts to reveal itself as well.

By default, the set of possible answer is the haskell prelude, but you can choose from other sets (for now, lens operators, and just traverse). As a matter of fact, adding a new set is a great way to contribute to haskle!

Contributing

Haskle is an elm application. I’ve tried to keep it as simple as possible, and I mostly work on it during my breaks, so code quality is… what it is. The nice thing about haskle is that it is working purely client-side, so it is relatively easy to hack on it locally.

Running locally

The only dependency is elm-0.19, you should be able to get it with nix-shell (a shell.nix file is present).

make && xdg-open public/index.html

Adding a new function set

The core part of a function set is a list of signatures, represented as strings. The name must be separated from the type with ::. In order to make the game more interesting, types like [a], (a,b), and () have to be replaced by List a, Tuple a b and Unit.

Additionally, you’ll have to provide a bit of extra information (like how to generate links to documentation pages).

haskle's People

Contributors

divarvel avatar yehoshuapw avatar joe-warren 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.