Skip to content

Instantly share code, notes, and snippets.

View jonwingfield's full-sized avatar

Jon Wingfield jonwingfield

View GitHub Profile
@jonwingfield
jonwingfield / conditional_types.ts
Last active January 4, 2020 19:57
Conditional Types
// From https://artsy.github.io/blog/2018/11/21/conditional-types-in-typescript/
// Includes extra exercises.
type Action =
| {
type: "INIT"
}
| {
type: "SYNC"
}
@jonwingfield
jonwingfield / c_wrapper.h
Created February 5, 2016 14:11
Example C Wrapper for a C++ Class
#ifdef __cplusplus
#define CCALL extern "C"
CCALL RF24* rf24_init(uint8_t ce_pin, uint8_t cs_pin) { return new RF24(ce_pin, cs_pin); }
CCALL void rf24_begin(RF24* rf24) { rf24->begin(); }
CCALL void rf24_free(RF24* rf24) { delete rf24; }
#else
typedef struct {} RF24;
@jonwingfield
jonwingfield / gist:7485934
Last active December 28, 2015 10:19
Church Numerals in Clojure
; f -> x -> x
(def zero
(fn [f,x] x))
; 1: f -> x -> f(x)
(def one
(fn [f,x] (f x)))
; 2: f -> x-> f(f(x))
(def two