Skip to content

Instantly share code, notes, and snippets.

View pete-murphy's full-sized avatar

Pete Murphy pete-murphy

View GitHub Profile
module Main where
import Prelude
import Data.Maybe (Maybe(..), fromMaybe)
import Data.Tuple (fst)
import Effect (Effect)
import Effect.Exception (throw)
import Effect.Unsafe (unsafePerformEffect)
import React.Basic.DOM (render)
import React.Basic.DOM as R
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Data.Symbol (SProxy(..))
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Class (class MonadEffect, liftEffect)
import Effect.Ref as Ref
import qualified Control.Monad as Monad
import Control.Monad.Trans.State (State)
import qualified Control.Monad.Trans.State as State
import Data.Function ((&))
import Control.Arrow ((&&&))
data Node = Node {children :: [Node], metadata :: [Int]}
allMetadata :: Node -> [Int]
allMetadata node = metadata node ++ concatMap allMetadata (children node)
import Control.Arrow ((>>>))
import Control.Lens ((&))
import Control.Monad.Trans.State (State, evalState, gets, put)
import Data.Foldable (minimumBy)
import Data.List.Split (splitOn)
import Data.Ord (comparing)
import qualified Data.Set as S
type Token = Point -> [Point]
@pete-murphy
pete-murphy / Main.purs
Last active February 8, 2021 02:38
Routing example
module Main where
import Prelude
import Data.Array (range)
import Data.Foldable (oneOf)
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Exception (throw)
import React.Basic (JSX, fragment)
import React.Basic.DOM (render)
@pete-murphy
pete-murphy / Main.purs
Created October 9, 2020 12:57
Example of useEffect, useAff in simple React app
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Class (liftEffect)
import Effect.Class.Console (log)
import Effect.Exception (throw)
import React.Basic.DOM (render)
import React.Basic.DOM as R
module Main where
import Prelude
import Data.Foldable (intercalate, traverse_)
import Data.Maybe (Maybe(..))
import Data.Nullable (Nullable, null)
import Effect (Effect)
import Effect.Exception (throw)
import React.Basic.DOM (render)
import React.Basic.DOM as R
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Exception (throw)
import React.Basic.DOM (render)
import React.Basic.DOM as R
import React.Basic.Events (handler_)
import React.Basic.Hooks (Component, component, useReducer, (/\))
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}
module ValidateForm where
import Data.Function ((&))
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Traversable
function swapEither<L, A>(e: E.Either<L, A>): E.Either<A, L> {
return E.isLeft(e) ? E.right(e.value) : E.left(e.value)
}
function toRight<L>(e: E.Either<L, unknown>): E.Either<never, L | undefined> {
return E.isLeft(e) ? E.right(e.value) : E.right(undefined)
}
function validateFields(
v: FieldValues
): E.Either<FieldErrors, DAN_FAKE_SHAPE_SCHEDULER> {