Skip to content

Instantly share code, notes, and snippets.

🔮
~*srcery*~

lambdahands

🔮
~*srcery*~
  • NYC
View GitHub Profile
@lambdahands
lambdahands / finalTagless.ml
Last active Oct 25, 2019
Final Tagless in OCaml
View finalTagless.ml
(*
* An OCaml implementation of final tagless, inspired from this article by Oleksandr Manzyuk:
* https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object-algebras-to-finally-tagless-interpreters-2/
*)
module FinalTagless = struct
type eval = { eval : int }
type view = { view : string }
module type ExpT = sig
@lambdahands
lambdahands / _readme.md
Created Sep 28, 2015
FlowType and CSS Modules
View _readme.md

Huh?

So basically FlowType doesn't know about CSS Modules, a really handy way of dealing with the plagues of CSS in codebases (global variables and dependency wackiness mainly).

What WebPack allows us to do is "require" CSS files and use their class names:

import styles from "my_styles.css";
import React from "react";
View gist:69936fde1a9006339e0c3750ea367d9e
### Keybase proof
I hereby claim:
* I am lambdahands on github.
* I am lambdahands (https://keybase.io/lambdahands) on keybase.
* I have a public key ASCd2qx2yxQ0BTS86C4_I0TgynzVtUBNqahQMGLTyMB8jQo
To claim this, I am signing this object:
View SketchSystems.spec
Menubar
Select New -> New
Select Recent -> Recent
Select Other -> Recent
New
Recent
Other
Another
@lambdahands
lambdahands / _readme.md
Last active May 21, 2018
Clojure + Java
View _readme.md

Run this script

Call this in your terminal:

$ clj -Sdeps '{:deps {hello {:git/url "https://gist.github.com/lambdahands/949f69a25c25cb4fd953e99942335503" :sha "02b5ca5c86a800829c6f4aeaf0f83ed016cef49c"}}}' -m hello
View maria-experts.cljs
;; # Maria for Experts
;; This is a short tour of abstractions we've made in the process of building Maria, which are also available while using the system. It is meant for people with experience using functional programming languages who already know how to evaluate forms in Maria. If you're a beginner to Maria or to programming in general, I recommend starting [here](https://www.maria.cloud/intro).
;; (For the impatient, Command-Enter — Control-Enter on a PC — within a code block with evaluate the code before the cursor.)
;; ## Notebook interface
;;
;; In the notebook tradition exemplified by iPython Notebooks, one has a mix of prose and code with the ability to visualize the results of evaluating a particular piece of code.
;;
View phrases.clj
(ns sql-formatter.core)
(def phrases
{:begin-clauses #{"left" "right" "inner" "outer" "group" "order"}
:end-clauses #{"where" "set" "having" "join" "from" "onto" "union"}
:logical #{"and" "or" "when" "else" "end"}
:quantifiers #{"in" "all" "exists" "some" "any"}
:dml #{"insert" "update" "delete"}
:misc #{"select" "on"}})
@lambdahands
lambdahands / psuedo_code.clj
Last active Aug 29, 2017
Clojure behavioral dispatch psuedo-code
View psuedo_code.clj
(defprotocol ISpeak
(hello [this]))
(defbehavior ::philip
ISpeak
(hello [_]
(println "Hello, my name is Philip!")))
(defdispatch Person [this]
[(:name this) (:age this)])
@lambdahands
lambdahands / cta.js
Created Dec 9, 2014
flow-type + immutable-js
View cta.js
/* @flow */
var T = require('immutable');
type Branch = T.List<string>
type TrainLine = T.Map<string, Branch>
type CTAMap = T.Map<string, TrainLine>
/*
* Representation of Chicago's train stops and branches
View fruit_checkboxes.cljs
(ns nightcoders.fruit-checkboxes
(:require [reagent.core :as r]))
;; Initial State
(def choices [:apple :apricot :banana :mango :orange :plum])
(def max-choices 2)
(def state (r/atom []))
You can’t perform that action at this time.