Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.org

BellRinger - A Haskell Front-End Structure

Orientation

Specific To This App

Start with Messages. This defines the state of the front-end (the World), and the possible operations on it process. The front end changes by Messages coming in, being processed and moving the state of the World forward.

Next look at Render. This knows 2 things: how to turn the World into a DOM, and how to give the user the ability to generate Messages. It does not know how to process messages, and that’s an important separation in the design.

Reusable Structure

Look at Virtual. This is a library of functions for creating a ReactJS-style virtual DOM, and applying it as the state of the world changes. Efficient, functional rendering.

Finally, Main wires everything together, ensure that the world is rendered and re-rendered as new messages advance the state of the world.

So…

In a real app, the first two files would likely change vastly. This is where development effort would be spent: defining what to do, and how to display it.

The last two files should remain roughly the same, and will eventually be extracted into their own library.

Building

  1. Ensure you have ghcjs installed.
  2. make

Work To Do

  • [X] Demonstrate Networking
  • [ ] Demonstrate Forms
  • [ ] Use Lucid for DOM-generation.

License

Copyright © 2014 Kris Jenkins

Distributed under the Eclipse Public License.

About

An experiment in porting my preferred ClojureScript architecture to Haskell

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.