Skip to content

Instantly share code, notes, and snippets.

View simonh1000's full-sized avatar

Simon Hampton simonh1000

View GitHub Profile
@simonh1000
simonh1000 / River.elm
Created February 14, 2018 08:22
Wolf, Goat, Cabbage problem in Elm
module River exposing (..)
type Character
= Wolf
| Goat
| Cabbage
type State
@simonh1000
simonh1000 / Example2.elm
Created November 26, 2016 15:51
Elm Navigation with HTML5 links
module Main exposing (..)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Navigation
import Json.Decode as Json
main =
@simonh1000
simonh1000 / DragTable.elm
Last active June 29, 2017 12:53
Draggable table
module DragTable exposing (..)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Json.Decode as Json exposing (Decoder, Value)
import Dict exposing (Dict)
import List as L exposing (drop, take)
import Tuple
module Test exposing (..)
import Html exposing (..)
import Html.App as App
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import List exposing (map)
import Json.Decode as Json
@simonh1000
simonh1000 / Main.elm
Last active July 7, 2016 12:13
Form errors
module Test exposing (..)
import Platform.Cmd exposing (Cmd)
import Html exposing (..)
import Html.App as Html
import Html.Attributes exposing (..)
import Form exposing (..)
import Form.Input as Input
@simonh1000
simonh1000 / Main.elm
Last active October 14, 2015 12:33
Elm 'SPA' with Google Maps on second page
module Spa where
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import StartApp
import Effects exposing (Effects, Never)
import Task
@simonh1000
simonh1000 / ArchictectureErrorHandler.elm
Created September 23, 2015 08:06
Elm architecture example with Http (Json parsing) error handling
module ArchictectureErrorHandler where
import Text exposing (fromString)
import String
import Json.Decode as Json exposing (..)
import StartApp exposing (start)
import Html exposing (..)
import Http exposing (get, Error)
import Effects exposing (Effects)
@simonh1000
simonh1000 / main.elm
Created September 22, 2015 14:10
Elm: Download Json with error handling
import Http
import Markdown
import Html exposing (Html, div, text)
import Task exposing (Task, andThen)
import Json.Decode as Json exposing (..)
type alias ValWithErr = Result String Int
main : Signal Html
main =
@simonh1000
simonh1000 / functor-monad.hs
Last active August 29, 2015 14:13
Functor < Applicative < Monad - demonstration of the hierarchy of type Classes
import Control.Applicative
import Control.Monad
-- :k MonadClass :: * -> *
data MonadClass a = MonadClass a
-- fmap :: (a -> b) -> (m a -> m b)
instance Functor MonadClass where
fmap f = (<*>) (MonadClass f)
@simonh1000
simonh1000 / Maybe.class.js
Created January 4, 2015 19:41
Maybe Monad in Javascript
"use strict"
/*
An implementation of the Maybe monad in ES6, representing
- Maybe as a singleton array
- Nothing and null
Compiled and run with Traceur
traceur --out build.js --script maybe.js