Skip to content

Instantly share code, notes, and snippets.

🔮
~*~*sorcery*~*~

Philip Diaz lambdahands

🔮
~*~*sorcery*~*~
  • Chicago
Block or report user

Report or block lambdahands

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:e3d981f8d33e0ce1a5fe
import Data.Text (split, pack, unpack)
splitStr :: Char -> String -> [String]
splitStr c str = map unpack $ split (== c) (pack str)
@lambdahands
lambdahands / transfer.sh
Created Sep 30, 2014
Little script to encrypt + upload and download + decrypt files. Uses gpg and http://transfer.sh
View transfer.sh
#!/bin/bash
transfer() {
echo $(gpg -ac --cipher-algo AES256 --sign --force-mdc < $1) | curl http://transfer.sh/$1 -T -
}
recover() {
curl $1 | gpg -ad
}
alias transfer=transfer
View nse.factor
# A side effect-less Factor operation.
[ ] call
View mapv.ml
module ListExtra = struct
open Core.Std
(*- Maps a function to each "column" in a list of "rows".
mapv [[1;2;3]; [3;4;5]] ~f:(List.fold ~init:0 ~f:(+));;
- : int list = [4; 6; 8]
*)
let mapv ls ~f = let open List in
let cmp x y = if length x = length y then 0
@lambdahands
lambdahands / objectAlgebras.ml
Last active Nov 6, 2015
Object Algebras in OCaml
View objectAlgebras.ml
(*
* An OCaml implementation of object algebras, inspired from this article by Oleksandr Manzyuk:
* https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object-algebras-to-finally-tagless-interpreters-2/
*)
module ObjectAlgebras = struct
(* We technically don't need these interfaces;
* added here to compare between the Java implementation *)
type 'a expAlg = < lit : int -> 'a; add : 'a -> 'a -> 'a >
type 'a mulAlg = < mul : 'a -> 'a -> 'a >
@lambdahands
lambdahands / core.cljs
Created Nov 5, 2013
Using bound vars as argument to `to-attr` in macro produces no results. Not sure what mistake I'm making.
View core.cljs
(ns my-project.core
(:require-macros [my-project.macros :refer [style-el]]))
(defn create-el [kind]
(. js/document (createElement (name kind))))
(let [div (create-el :div)]
;; Works as expected
(style-el div :width "50%")
@lambdahands
lambdahands / error.clj
Last active Dec 20, 2016
Datomic Client Errors
View error.clj
(require '[clojure.core.async :refer [<!!]]
'[datomic.client :as client])
; Connection config incomplete for brevity
(def conn (<!! (client/connect {:db-name "mydb"})))
(<!! (client/pull (client/db conn) {:selector [:db/doc]}))
; Produces data as error message.
; Value on path [:datomic.client/http-error :cause] is a spec explaination:
{:cognitect.anomalies/category :cognitect.anomalies/incorrect
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 []))
@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
@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)])
You can’t perform that action at this time.