I hereby claim:
- I am joelnet on github.
- I am joelnet (https://keybase.io/joelnet) on keybase.
- I have a public key ASBhE_5H8aJ_C-JIpSwxrk42nUN2c1I_f0Fe6jmlWphKhgo
To claim this, I am signing this object:
| const pipe = require('ramda/src/pipe') | |
| const curry = require('ramda/src/curry') | |
| const clampA = (min, max, value) => { | |
| let newValue = Number(value) | |
| newValue = Math.min(max, newValue) | |
| newValue = Math.max(min, newValue) | |
| return newValue | |
| } |
I hereby claim:
To claim this, I am signing this object:
| /** | |
| * Demo for https://twitter.com/joelnet/status/1163820524709076992 | |
| */ | |
| class Person { | |
| constructor(firstName, lastName) { | |
| this.firstName = firstName; | |
| this.lastName = lastName; | |
| } | |
| } |
| // Y Combinator | |
| const Y = a => (b => b (b)) (b => a (c => b (b) (c))) | |
| // isomorphic Church encoding/decoding | |
| const Church = { | |
| to: n => f => x => Array.from (Array (n)).reduce (f, x), | |
| from: f => f (x => x + 1) (0) | |
| } | |
| const True = a => b => a |
| // S and K are primitive function combinators. | |
| const S = a => b => c => a (c) (b (c)) | |
| const K = a => b => a | |
| // Non-primitive combinators can be created with S and K. | |
| const C = S (S (K (S (K (S)) (K))) (S)) (K (K)) | |
| const I = S (K) (K) | |
| const KI = K (I) | |
| const M = S (I) (I) | |
| const R = S (K (S (K (S)) (K))) (S (K (S (I))) (K)) |
| #!/bin/bash | |
| pidfile=$1 | |
| cmd=$2 | |
| if [ -z "$pidfile" ] || [ -z "$cmd" ]; then | |
| echo "Usage: once <pidfile> \"<command>\"" | |
| exit 0 | |
| fi |
| const user = { id: 100, name: 'Howard Moon' } | |
| const password = 'Password!' | |
| const userWithPassword = { | |
| ...user, | |
| id: 100, | |
| ...(password && { password }) | |
| } | |
| userWithPassword //=> { id: 100, name: 'Howard Moon', password: 'Password!' } |
| const renamed = ({ ID, ...object }) => ({ id: ID, ...object }) | |
| const user = { | |
| ID: 500, | |
| name: "Bob Fossil" | |
| } | |
| renamed(user) //=> { id: 500, name: 'Bob Fossil' } |
| const setDefaults = ({ ...object}) => ({ quotes: [], ...object }) |
| const user2 = { | |
| id: 200, | |
| name: 'Vince Noir' | |
| } | |
| const user4 = { | |
| id: 400, | |
| name: 'Bollo', | |
| quotes: ["I've got a bad feeling about this..."] | |
| } |