Skip to content

Instantly share code, notes, and snippets.

@JordanMartinez
JordanMartinez / Main.purs
Last active March 25, 2022 21:47
Unfoldable iterateN vs Unfoldable1 iterateN
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Data.Tuple (Tuple(..))
import Effect (Effect)
import Effect.Console (log)
import TryPureScript as TryPureScript
@JordanMartinez
JordanMartinez / Main.purs
Last active December 11, 2021 07:14
Experiment - Redefining Functor to work with both curried and uncurried functions
module Main where
import Prelude hiding (pure)
import Data.Function.Uncurried (Fn2, mkFn2, runFn2)
import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype, wrap)
import Effect (Effect)
import Effect.Console (log)
import Prelude as Prelude
@JordanMartinez
JordanMartinez / cheatsheet.dhall
Last active September 4, 2021 19:43
Dhall Cheatsheet for Spago PR
-- Summary of https://hackage.haskell.org/package/dhall-1.40.1/docs/Dhall-Core.html#t:Expr
-- <dhall expression> -- haskell syntax
"text" -- TextLit (Chunks [] "text")
"an ${interpolatedValue} text" -- Text (Chunks [("an ", interpolatedValue)] " text")
["foo"] -- ListLit Nothing (Seq.singleton (TextLit [] "foo"))
[] : List Text -- ListLit (Just (App List Text)) Seq.empty
["foo"] # ["bar"] -- ListAppend fooExpr barExpr
["foo"] # ["bar"] # ["baz"] -- ListAppend (ListAppend fooExpr barExpr) bazExpr
@JordanMartinez
JordanMartinez / Main.purs
Last active July 4, 2021 00:59
Writing Stack-Safe Code - Part 2
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Data.Tuple (Tuple(..), snd)
import Data.List (range, uncons, head)
import Data.List.Types (List(..), (:))
import Data.Either (Either(..))
import Effect (Effect)
@JordanMartinez
JordanMartinez / Main.purs
Last active July 4, 2021 00:46
Writing Stack-Safe Code - Part 1
module Main where
import Prelude
import Data.List (range, length)
import Data.List.Types (List(..), (:))
import Data.Either (Either(..))
import Effect (Effect)
import Effect.Console (log)
import TryPureScript as TryPureScript
@JordanMartinez
JordanMartinez / Main.purs
Created June 4, 2021 20:16
Building multiple record codecs with common fields among them
module Main where
import Prelude
import Data.Argonaut as Argonaut
import Data.Codec.Argonaut as CA
import Effect (Effect)
import Effect.Console (log)
import TryPureScript (render, withConsole)
@JordanMartinez
JordanMartinez / Main.purs
Created May 31, 2021 13:34
Backticks on types don't work
module Main where
data Tuple a b = Tuple a b
example :: Int `Tuple` Int
example = 4 `Tuple` 4
main :: Effect Unit
main = pure unit
@JordanMartinez
JordanMartinez / Main.purs
Last active March 29, 2023 16:54
TryPurescript - REPL like experience
module Main where
import Prelude
import Control.Alt ((<|>))
import Control.Monad.Reader.Trans (ReaderT(..))
import Control.Monad.Writer.Trans (WriterT(..))
import Control.Monad.State.Trans (StateT(..))
import Control.Monad.Except.Trans (ExceptT(..))
@JordanMartinez
JordanMartinez / Main.purs
Created December 2, 2020 03:46
Simple AST Parser - No dev console needed
module Main where -- Overwritten by Try PureScript
import Prelude hiding (between)
import Control.Alt ((<|>))
import Control.Lazy (defer, fix)
import Data.Either (Either(..))
import Data.Foldable (foldMap, for_, oneOf)
import Data.Function (on)
import Data.Int (fromString, toNumber)
@JordanMartinez
JordanMartinez / Main.purs
Last active October 26, 2020 13:35
Weird Duplication bug in Halogen
module Main where
import Prelude
import Data.Array as Array
import Data.Foldable (for_)
import Data.Maybe (Maybe(..))
import Data.Symbol (SProxy(..))
import Data.Tuple.Nested ((/\))
import Effect (Effect)