Haste is a dialect of the Haskell programming language geared towards web applications. Haste supports the full Haskell language, including most GHC extensions but comes with a different set of standard libraries, implementing native support for modern web technologies such as WebSockets, LocalStorage, Canvas and others.
The Haste Website is a great resource for getting started.
Here are some links you may find helpful:
How is the app structured? Are there deviations from the spec? If so, why?
Since this is not a conventional JavaScript application and but is written in
Haskell instead. The application logic likes in src
directory.
src/Data/Todo.hs
: Defines the relevant data structures.src/Todo/DOM.hs
: Defines DOM interactions and most of the business logic.src/Todo.hs
: Initializes the application.
Currently, out of MVC we don't really emulate a C
but just M
and V
. V
has the logic of controller, router and view are all tangled in DOM.hs
.
A recently built app will be available on the branch gh-pages
. To run the
app, spin up an HTTP server at any port and visit http://localhost:port/
.
To make changes you'll need to have haste-compiler installed (hastec
available
in your PATH). To build run: bower install
and then make
- Haste compiler
- App design and templates from: https://github.com/tastejs/todomvc/tree/master/template
- This TodoMVC application was created by crodjer.