Skip to content

Instantly share code, notes, and snippets.

View afcondon's full-sized avatar

Andrew Condon afcondon

View GitHub Profile
@afcondon
afcondon / Main.purs
Created February 23, 2016 17:57
Extending the purescript-simple-websocket example
module Main where
import Prelude (Unit, return, (==), bind,($))
import Control.Monad (when)
import Control.Monad.Eff (Eff(), runPure)
import Control.Monad.Eff.Class (liftEff)
import Control.Monad.Eff.Var (($=))
import Control.Monad.Eff.Console (log, CONSOLE())
import Data.Maybe (Maybe(..))
@afcondon
afcondon / Main.purs
Created August 17, 2016 15:39
Ord-ering sum types
module Main where
import Prelude
import Control.Monad.Eff.Console
newtype A = A Int
data Foo = Foo | Bar | Baz
derive instance eqFoo :: Eq Foo
module Main where
import Prelude (Unit)
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Data.Function.Eff (EffFn4, EffFn3, mkEffFn4, runEffFn3)
foreign import data D3 :: !
foreign import data Selection :: * -> *
foreign import data D3Element :: *
@afcondon
afcondon / BarChart.purs
Last active October 4, 2016 13:57
purescript-d3v4 block test
module Main where
import D3.Axis
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (PolyValue(Value), AttrSetter(SetAttr, AttrFn), DataBind(Data), D3, (..), (...))
import D3.Collections (D3Collection(D3Range, D3ArrT))
import D3.Scale (ScaleType(Linear, Band), scaleBy, bandwidth, domain, rangeRound, d3Scale, padding)
import D3.Selection (attr, append, enter, dataBind, selectAll, text, getAttr, d3Select)
import Data.Maybe (Maybe(Just))
module Main where
import D3.Selection
import Control.Monad.Aff (later', Aff)
import Control.Monad.Eff.Class (liftEff)
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (D3, Eff, Index, AttrSetter(SetAttr, AttrFn), DataBind(Keyed), PolyValue(SetByIndex, Value), opaque, transparent, (..), (...))
import D3.Transitions (tRemove, AttrInterpolator(TweenTarget, Target), tStyle, tAttr, savedTransition, TransitionName(..), duration, d3Transition)
import Data.String (singleton, toCharArray)
import Prelude (Unit, unit, pure, bind, show, map, negate, ($), (/), (<>), (-), (*))
foreign import onTickFn :: ∀ eff. EffFn2 (d3::D3|eff)
(Eff (d3::D3|eff) Unit)
D3Simulation
D3Simulation
onTick :: ∀ eff. Eff (d3::D3|eff) Unit -> D3Simulation -> Eff (d3::D3|eff) D3Simulation
onTick = runEffFn2 onTickFn
ticked :: ∀ eff. Selection ForceNode -> Selection ForceLink -> Eff (d3::D3|eff) (Eff (d3::D3|eff) Unit)
module Main where
import D3.ForceSimulation
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (PolyValue(SetByIndex), D3, Eff, D3Element, Index, Point, AttrSetter(AttrFn, SetAttr), DataBind(Data), ListenerType(StartDrag, EndDrag, Drag), Typenames(TypeNames), (...), (..))
import D3.Drag (dragUpdate, addDragListener, d3Drag)
import D3.Scale (ScaleType(Category), scaleBy, schemeCategory20, d3Scale)
import D3.Selection (text, Selection, call, attr, append, enter, dataBind, selectAll, getAttr, d3Select, selectElem)
import Data.Maybe (Maybe(Just, Nothing))
import Data.Pair (Pair(Pair))
module Main where
import D3.Selection
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (PolyValue(Value), AttrSetter(SetAttr, AttrFn), DataBind(Data), Point, D3, (..), (...))
import Prelude (pure, unit, Unit, bind)
circleData :: Array Point
circleData = [ {x: 100.0, y: 100.0}
module Main where
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (D3, Eff, D3Element, Index, Point, AttrSetter(..), DataBind(..), ListenerType(..), PolyValue(..), Typenames(..), (...), (..))
import D3.Drag (addDragListener, d3Drag, dragUpdate)
import D3.Scale (scaleBy, schemeCategory10, ScaleType(Category), d3Scale)
import D3.Selection (call, style, attr, append, enter, dataBind, selectAll, d3Select, selectElem)
import D3.Zoom (addZoomListener, scaleExtent, d3Zoom, getZoomEvent)
import Data.Maybe (Maybe(..))
import Prelude (Unit, unit, pure, bind)
module Main where
import Control.Monad.Eff.Console (CONSOLE)
import D3.Base (PolyValue(SetByIndex), D3, Eff, Index, D3Element, Nodes, AttrSetter(..), DataBind(..), (..), (...))
import D3.Selection (text, style, attr, append, enter, dataBind, selectAll, getAttr, d3Select)
import D3.Tree (size, HierarchyNode, descendants, layoutTree, d3Hierarchy, d3Tree, hasChildren, parent)
import Data.Array (drop)
import Data.Maybe (Maybe(..))
import Prelude (show, pure, bind, (<>), Unit, unit, (-), ($), (/), (+), (<$>), negate)