#Common Table Tennis Spins
####As seen from server's POV.
##Top Row:
####Topspin
>Causes ball to jump off of opponents racket, often off the table.
const hunt = ".0.2.0.1" | |
const beam = ".0.5.1.0.3.6.0" | |
const slab = ".0.5.1.0.4.6.0" | |
const steel = ".0.5.1.0.6.6.0"; | |
const manuscript = ".0.5.1.0.g.6.0"; | |
const praise = ".0.3.0"; | |
const targets = [hunt, beam, slab, steel, manuscript, praise]; | |
targets.forEach(target => { |
/** | |
* This pretty much works. | |
* The rest is simplifying and prettifying | |
* while also extracting the Y-combinator function | |
* as a generic utility. | |
*/ | |
const factorial = (f => n => { | |
if (n < 2) 1; |
//A function that returns a function | |
const adder = a => b => a + b | |
//Read `adder` left to right as params are passed in, | |
//by passing in 5 as `a` we create the function `b => 5 + b` | |
const add5 = adder(5); | |
//this is 8 | |
console.log(add5(3)); |
// This writes out the same function twice. | |
// If you consider the top function `pseudoFactorial` and the bottom function as `copy` | |
// you can read it as `pseudoFactorial(copy)` | |
// | |
// As pseudoFactorial creates a function that creates a function, | |
// this creates the factorial function, ready to take in `n` | |
const factorial = (f => n => { |
const factorial = (n) => { | |
if (n < 2) return 1; | |
return n * factorial(n - 1); | |
} |
Verifying my Blockstack ID is secured with the address 13K59BaY72NpbKGm95pZkFZEw6X8BTzwKG https://explorer.blockstack.org/address/13K59BaY72NpbKGm95pZkFZEw6X8BTzwKG |
#Common Table Tennis Spins
####As seen from server's POV.
##Top Row:
####Topspin
>Causes ball to jump off of opponents racket, often off the table.
Understanding Throttle and Debounce Through Analogy:
###Throttle:
A lazy person who ignores your commands until he is rested.
###Debounce:
Built with blockbuilder.org
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Spiral Printer</title> | |
<style type="text/css"> | |
.circle { | |
cursor : pointer; |