See how a minor change to your commit message style can make a difference.
git commit -m"<type>(<optional scope>): <description>" \ -m"<optional body>" \ -m"<optional footer>"
| import * as React from 'react'; | |
| import { Component, ComponentClass, createRef, forwardRef, Ref } from 'react'; | |
| const myHoc = <ComposedComponentProps extends {}>( | |
| ComposedComponent: ComponentClass<ComposedComponentProps>, | |
| ) => { | |
| type ComposedComponentInstance = InstanceType<typeof ComposedComponent>; | |
| type WrapperComponentProps = ComposedComponentProps & { | |
| wrapperComponentProp: number; |
See how a minor change to your commit message style can make a difference.
git commit -m"<type>(<optional scope>): <description>" \ -m"<optional body>" \ -m"<optional footer>"
With the addition of ES modules, there's now no fewer than 24 ways to load your JS code: (inline|not inline) x (defer|no defer) x (async|no async) x (type=text/javascript | type=module | nomodule) -- and each of them is subtly different.
This document is a comparison of various ways the <script> tags in HTML are processed depending on the attributes set.
If you ever wondered when to use inline <script async type="module"> and when <script nomodule defer src="...">, you're in the good place!
Note that this article is about <script>s inserted in the HTML; the behavior of <script>s inserted at runtime is slightly different - see Deep dive into the murky waters of script loading by Jake Archibald (2013)
| Ramda | Sanctuary |
|---|---|
add(a, b) |
add(b, a) |
addIndex(f) |
`` |
adjust(f, i, xs) |
`` |
all(f, xs) |
`` |
allPass(fs, x) |
allPass(fs, x) |
always(x) |
K(x) |
and(a, b) |
and(a, b) |
any(f, x) |
`` |
| CATEGORY THEORY FOR PROGRAMMERS | |
| Category Theory 1.1: Motivation and Philosophy | |
| https://www.youtube.com/watch?v=I8LbkfSSR58&index=1&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_ | |
| Composability, Abstraction, Reusability | |
| Category Theory is a higher-level language. | |
| Not a practical, executable language. |
| ########################################## | |
| # To run: | |
| # curl -sSL https://gist.githubusercontent.com/andrewelkins/1adc587feb610f586f8f40b50b7efc3a/install-docker-on-linux-mint-18.sh | bash -x | |
| ########################################## | |
| # Kernel version http://stackoverflow.com/a/4024263 | |
| versionlte() { | |
| [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] | |
| } | |
| versionlt() { |
Copyright © 2016-2018 Fantasyland Institute of Learning. All rights reserved.
A function is a mapping from one set, called a domain, to another set, called the codomain. A function associates every element in the domain with exactly one element in the codomain. In Scala, both domain and codomain are types.
val square : Int => Int = x => x * x| const S = f => g => x => f(x)(g(x)) | |
| const K = x => y => x | |
| const I = S(K)(K) | |
| const B = S(K(S))(K) | |
| const C = S(S(K(B))(S))(K(K)) | |
| const A = S(K(I)) | |
| const T = C(A) | |
| const W = S(S)(K(I)) |