Whenever you want to squash last commits in a single commit:-
first check your log
git log
| const Task = require('data.task') | |
| Task.prototype.alt = function (that) { | |
| return new Task((rej, res) => | |
| this.fork(_ => that.fork(rej, res), res)) | |
| } | |
| const hosts = [ | |
| [ 'db1.mysite.com', 'user', 'password' ], | |
| [ 'db2.mysite.com', 'user', 'password' ], |
| const Task = require('data.task') | |
| Task.prototype.alt = function (that) { | |
| return new Task((rej, res) => | |
| this.fork(_ => that.fork(rej, res), res)) | |
| } | |
| const hosts = [ | |
| [ 'db1.mysite.com', 'user', 'password' ], | |
| [ 'db2.mysite.com', 'user', 'password' ], |
| // my initial code from https://github.com/bevry/outpatient/blob/455fd3a32791259931e0fa4e3b9b3b7d1dc26d8b/source/block.js#L55-L75 | |
| 'use strict' | |
| const h = require('hyperscript') | |
| module.exports = function (opts = {}) { | |
| // Prepare | |
| const { document, content } = this | |
| const { | |
| permalink = document.url, |
| git clone https://github.com/Homebrew/brew.git | |
| export PATH=${HOME}/brew/bin:${PATH} |
These examples are presented in an attempt to show how each coding styles attempts to or does not attempt to isolate side-effects. There are only 2 semantic elements in a barebone "Hello World" implementation:
console.logHELLO_WORLDSince every coding style can abstract away data into a parameter or variable, there is no point for us to show that. All implementations assume HELLO_WORLD is a constant that is always inlined. This way it reduces the variations we need to present. (To make an anology, if we were to implement incrementByOne, would we need to inline the number 1 or pass it in as parameter?)
CAVEAT/LIMITATION: All implementations also assume console is static global. In case of functional programming, console.log is asumed to be a function that can be passed around without further modification. (This is not the case in the browser, but that can be resolved with console.log.bind(console))
| const daggy = require('daggy') | |
| const compose = (f, g) => x => f(g(x)) | |
| const id = x => x | |
| //===============Define Coyoneda========= | |
| const Coyoneda = daggy.tagged('x', 'f') | |
| Coyoneda.prototype.map = function(f) { | |
| return Coyoneda(this.x, compose(f, this.f)) | |
| } |
| // NOTE: I added the .js extension to this gist so it would have syntax highlighting. This file should have NO file extension | |
| { | |
| // Settings | |
| "passfail" : false, // Stop on first error. | |
| "maxerr" : 100, // Maximum error before stopping. | |
| // Predefined globals whom JSHint will ignore. | |
| "browser" : true, // Standard browser globals e.g. `window`, `document`. |