Skip to content

Instantly share code, notes, and snippets.

View lambdahands's full-sized avatar
🔮
~*srcery*~

Amani lambdahands

🔮
~*srcery*~
View GitHub Profile
(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 / error.clj
Last active December 20, 2016 04:25
Datomic Client Errors
(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
@lambdahands
lambdahands / core.cljs
Created November 5, 2013 21:01
Using bound vars as argument to `to-attr` in macro produces no results. Not sure what mistake I'm making.
(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 / objectAlgebras.ml
Last active November 6, 2015 09:47
Object Algebras in OCaml
(*
* 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 >
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
# A side effect-less Factor operation.
[ ] call
@lambdahands
lambdahands / transfer.sh
Created September 30, 2014 19:34
Little script to encrypt + upload and download + decrypt files. Uses gpg and http://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
import Data.Text (split, pack, unpack)
splitStr :: Char -> String -> [String]
splitStr c str = map unpack $ split (== c) (pack str)