Skip to content

Instantly share code, notes, and snippets.

View maciejsmolinski's full-sized avatar

Maciej Smolinski maciejsmolinski

View GitHub Profile
@maciejsmolinski
maciejsmolinski / parser.hs
Last active May 4, 2021 00:04
Putting into practice lessons learned from "Write Yourself a Scheme in 48 hours" book https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/Parsing
module Main (main) where
import Prelude
import System.Environment
import Control.Monad
import Text.ParserCombinators.Parsec
main :: IO ()
main = do
(text:_) <- getArgs
const daggy = require('daggy');
const Status = daggy.taggedSum('Status', {
Pending: [],
Done: [],
Failed: ['reason'],
});
const jobs = [
{ id: 1, status: Status.Pending },
<!DOCTYPE html>
<html>
<head>
<title>A simple d3 chart</title>
<meta charset="UTF-8" />
</head>
<body>
<div id="app">
<svg id="viz"></svg>
module Main where
import Prelude
import Effect (Effect)
import Data.Maybe (Maybe(..))
import React (ReactElement)
import React.DOM (text)
import ReactDOM (render)
import Web.HTML (window)
module Parser (Parser, item, digit, run) where
import Data.Int (fromString)
import Data.Maybe (fromJust, Maybe(..))
import Data.String.CodeUnits (charAt, drop, singleton)
import Data.Tuple (Tuple(..))
import Partial.Unsafe (unsafePartial)
import Prelude
newtype Parser a = Parser (String -> Array (Tuple a String))
@maciejsmolinski
maciejsmolinski / Main.purs
Created May 20, 2020 23:40
Simple EDSL in PureScript
module Main where
import Data.Traversable (traverse_)
import Effect (Effect)
import Effect.Console (logShow)
import Prelude
data Expression
= Num Int
| Add Expression Expression
@maciejsmolinski
maciejsmolinski / purescript.md
Last active June 6, 2018 08:02
Create ES6 + PureScript application in 4 simple steps
@maciejsmolinski
maciejsmolinski / mock.hs
Created May 26, 2018 17:14
Mocking in Haskell
data Article = Article
{ title :: String
, body :: String
} deriving (Show)
articles :: IO [Article]
articles =
return
[ Article
{ title = "First article"
@maciejsmolinski
maciejsmolinski / morning.js
Created May 26, 2018 17:11
Good Morning Haskell
data Mood = Good | Bad
deriving (Show)
morning :: Mood -> String
morning mood = show mood ++ " Morning!"
main :: IO ()
main = putStrLn $ morning Good
@maciejsmolinski
maciejsmolinski / sanctuary-validations.js
Created May 26, 2018 17:06
sanctuary-validations.js
const validations = {
address: (street, postcode, city) => {
if (street && postcode && city) {
return S.Right(`${street}, ${postcode}, ${city}`)
}
return S.Left(`Incorrect address provided (${street}, ${postcode}, ${city})`);
},
email: (email) => {
if (/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) {