Skip to content

Instantly share code, notes, and snippets.

View evilsoft's full-sized avatar

Ian Hofmann-Hicks evilsoft

View GitHub Profile
import curry from 'crocks/helpers/curry'
import or from 'crocks/logic/or'
import pathSatisfies from 'crocks/predicates/pathSatisfies'
import propSatisfies from 'crocks/predicates/propSatisfies'
const list = [
'nice', 'bad', 'super bad'
]
const data = [
@evilsoft
evilsoft / data.js
Last active October 10, 2019 18:15
Code sample from Algebraic Javascript
const recs = [
{ learner: 'Joan', score: 84 },
null,
{ learner: null, score: 97 },
{ learner: 'Thomas', score: 72 },
22,
{ learner: 'Bob', score: 92 }
{ learner: 'Joey', score: 62 },
]
@evilsoft
evilsoft / ours(preds addtion).md
Last active April 14, 2023 06:44
Simple Style Diffs
+ const isValidScore = score =>
+   score >= 70
+
+ const isValidUser = user =>
+   user && user.length > 3

data.reduce((acc, rec) => {
  const { score, user } = rec
import Maybe from 'crocks/Maybe'
import Star from 'crocks/Star'
import prop from 'crocks/Maybe/prop'
import propOr from 'crocks/helpers/propOr'
import resultToMaybe from 'crocks/Maybe/resultToMaybe'
import tryCatch from 'crocks/Result/tryCatch'
const MaybeStar =
Star(Maybe)
import { Async, identity } from 'crocks'
// A Promise is not a Functor, since it is not
// a functor it cannot be a Monad
Promise
.resolve(Promise.resolve(3))
.then(console.log)
//=> 3
// should return a Promise that will return 3
const {
bimap, compose, composeK, fanout, isNumber,
liftA2, map, merge, prop, safe
} = require('crocks')
const {
add, multiply
} = require('ramda')
/////////////////////////////////////////////////////////////////
@evilsoft
evilsoft / bigTest.txt
Created June 2, 2018 22:29
Fun for Selwyn
Hello. how are you?
Hello. how are you?
Hello. how are you?
Hello. how are you?
Hello. how are you?
const Async = require('crocks/Async')
const assign = require('crocks/helpers/assign')
const compose = require('crocks/helpers/compose')
const isNil = require('crocks/predicates/isNil')
const maybeToAsync = require('crocks/Async/maybeToAsync')
const not = require('crocks/logic/not')
const objOf = require('crocks/helpers/objOf')
const prop = require('crocks/Maybe/prop')
const safeAfter = require('crocks/Maybe/safeAfter')
const tap = require('crocks/helpers/tap')
const State = require('crocks/State')
const { get } = State
const assign = require('crocks/helpers/assign')
const concat = require('crocks/pointfree/concat')
const constant = require('crocks/combinators/constant')
const flip = require('crocks/combinators/flip')
const isString = require('crocks/predicates/isString')
const liftA2 = require('crocks/helpers/liftA2')
const mapReduce = require('crocks/helpers/mapReduce')
@evilsoft
evilsoft / login.js
Created November 5, 2017 21:05
Using a ReaderT for database interaction
const { validateUser } = require('../data/users')
const {
compose, curry, objOf
} = require('crocks')
module.exports = ({ config, express, jwt, knex }) => {
const { jwtSecret } = config
const router = express.Router()