This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// a First is a function which takes two arguments | |
// of any type, and returns the type of the first argument | |
type First<T, U> = (a: T, b: U) => T | |
// as a non-trivial example, add_timedelta(time, timedelta) returns time | |
// doubler is parameterized on <T, U>, passes those parameters through to First | |
// typescript can figure out that f(f(a, b), b) is type correct | |
// since f is of type First, then it will return the same type as its first argument | |
// note we don't have ANY concrete types yet |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang sicp | |
(define balance 100) | |
(define (withdraw amount) | |
(if (>= balance amount) | |
(begin (set! balance (- balance amount)) | |
balance) | |
"Insufficient funds")) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
def stripe_form(data): | |
"""perform a stripe nested-data form-encoding""" | |
form = [] | |
def _form2(pre, val): | |
if type(val) not in (list, dict): | |
form.append((pre, val)) | |
return |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys, gc, collections | |
import psutil | |
def size_modules(): | |
module_size = collections.defaultdict(int) | |
for obj in gc.get_objects(): | |
if not hasattr(obj, "__module__"): | |
continue | |
if not isinstance(obj.__module__, str): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def _glom(spec, target, scope): | |
scope[CHILD_ERRORS] = [] | |
try: | |
... | |
except Exception as e: | |
scope.parent[CHILD_ERRORS].append((scope, e)) | |
raise | |
else: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from relativity import M2M | |
def generations(m2m): | |
""" | |
m2m is {dependent: dependes-on} | |
returns [{item, item, ...}, {item, item, ...}, ...] in topologically sorted order | |
""" | |
m2m = m2m.copy() | |
generations = [] | |
# first generation is things that have no dependencies |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import ChainMap | |
def glom(target, spec): | |
return Glom(spec, target).glom(ChainMap()) | |
class Glom(object): | |
""" | |
rather than state living inside glom() methods, the recursive |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
m2m = M2M() | |
ch = M2MChain() | |
gr = M2MGraph() | |
# TRANSFORMING BETWEEN TYPES | |
chain(*ch.m2ms) # kind of a copy | |
chain(ch) # also results in copy |