I often write Ellies to demo an idea or to share a solution with someone on Slack. Some of them are helpful enough to share many times so I keep a reference to them here. Others are just cool so I want to save the link 😎
- Validated Field
- Double-click to edit field
- Formatted number field
- Custom dropdown with "selected" and "focused" states
- Simple wizard with validated fields
- Debounced Validations
- Parsed form with state in Dict
- Getting the current date
- Browser "confirm" via ports
- Rotating lists and finding consecutive pairs
- All Elm synced video with custom scrub bar
- Phantom Types - type safe currency
- Generating random values: seeds vs command
- Dropdown that deletes selected elements (needs Html.Keyed)
- Undo/Redo history
- Undo/Redo history - Boston Elm Edition
- Minimal localstorage 0.19
- Minimal localstorage with response
- Random via task
- Geolocation via ports
- Getting IP address via HTTP
- Format an ISO8601 date string
- Faking HTTP with sleep
- Transforming a user-typed string in an input
- Recursive expression generator
- Sleeping
- Basic HTTP + JSON demo
- Generically decoding deeply nested lists
- Decoder that logs its errors 0.18
- Decoder that logs its errors 0.19
- Parsing time of day (e.g 3:15:00 PM)
- Highliting searched terms in text (recursive parser)
- Decoding CSV
Attempts at parsing Excel-style formulas, starting manual string munging in a giant nested conditional and moving up to extracting functions, building my own combinators, then finally swapping in the official elm/parser
library
- Formula Parsing - nested cases
- Formula Parsing - extracted Result functions
- Formula Parsing - making my own
Parser
type - Formula Parsing - using
elm/parser
- Video game attacks with reload time
- SelectList-based tab system
- Toggleable UI sections
- Accordion UI (0.19)
- Make your own HTML
- Simplest debouncer
- Handling multiple parallel HTTP requests with RemoteData
- Least common manager
These are a series of implementations of increasing difficulty for the exercise from the random generators section of the official guide where you show a die bouncing a random number of times. A full discussion of the solutions was provided on this forum thread
- All the faces at once (text)
- All the faces at once (SVG)
- Faces over time (text)
- Faces over time (SVG)
- Moving faces over time (using subscription)
- Moving faces over time (using sleep)
These were a couple exercises to get comfortable with pipeline-style applicatives.
The original problem was getting better at GraphQL selection sets but I translated
it to Maybe
to be more accessible (hence why the piping function is with
rather
than andMap
).