Skip to content

Instantly share code, notes, and snippets.

@bmeck
bmeck / es7-async-await.sweet.js
Last active August 29, 2015 13:55
sweet.js macro for async function, and the potential async function*
//
// This assumes the runner supports
// - generators (for a transpiler see http://facebook.github.io/regenerator/)
// - Promises (for a polyfill see https://github.com/petkaantonov/bluebird)
//
// This does not need outside libraries to be loaded
//
// This survives direct eval semantics, unless you use regenerator, in which case the unwinding will cause variable renaming
//
@mwanji
mwanji / tent_blog_proposal
Created October 5, 2012 09:27
Tent Blogging App Proposal
Two parts: Viewer and Publisher
Viewer
GET /posts of type Essay (https://tent.io/types/post/essay/v0.1.0)
Is notified when a new Essay is POSTed
Displays them as a blog
Publisher
(defmacro >> [& [first-expr & rest-exprs]]
(if (empty? rest-exprs)
first-expr
`(let [~'it ~first-expr]
(thread-it ~@rest-exprs))))
(>>
[jay john mike chris]
(filter (comp (partial = "new york") :current-city) it)
(group-by :employer it)
@peterc
peterc / pi.rb
Created February 23, 2013 13:34
Calculating pi using the Monte Carlo method
r = 5
points_total = 0
points_inside = 0
loop do
points_total += 1
x, y = rand * r * 2 - r, rand * r * 2 - r
points_inside += 1 if (x ** 2 + y ** 2) < (r ** 2)
puts "#{points_inside}/#{points_total}: pi == #{4 * points_inside / points_total.to_f}" if points_total % 10000 == 0
@osuushi
osuushi / pi.js
Last active December 14, 2015 03:38 — forked from peterc/pi.js
var points_total = 0;
var points_inside = 0;
var x, y, i;
while(true) {
for(i = 0; i < 10000; i++) {
x = Math.random();
y = Math.random();
points_inside += 2 + ~(x*x + y*y);
}
points_total += i;
(defprotocol IOffset
(-offset [x]))
(extend-type js/Element
IOffset
(-offset [x]
[(.-offsetLeft x) (.-offsetTop x)]))
(defprotocol IScroll
(-scroll [x]))
@tef
tef / python_ruby.py.rb
Last active December 17, 2015 13:29
python/ruby quine. changes comment to indicate what it last ran as.
# Python or Ruby
l,p,q=(""and"# Ruby"+10 .chr or"# Python"+chr(10)),'l,p,q=(""and"# Ruby"+10 .chr or"# Python"+chr(10))','print((""and"#{print l;c=39.chr;puts p+44.chr+c+p+c+44.chr+c+q+c;puts q}"or"{}{},{!r},{!r}{}{}".format(l,p,p,q,chr(10),q)))'
print((""and"#{print l;c=39.chr;puts p+44.chr+c+p+c+44.chr+c+q+c;puts q}"or"{}{},{!r},{!r}{}{}".format(l,p,p,q,chr(10),q)))
@davidbalbert
davidbalbert / cps-map.js
Created December 11, 2013 21:43
Three implementations of `map` in continuation passing style.
(function () {
"use strict";
var first = function (arr, c) {
c(arr[0]);
};
var rest = function (arr, c) {
c(arr.slice(1));
};
@steveluscher
steveluscher / gist:4b54e08aa1e0536b7cb9
Last active April 30, 2021 21:28
Proposed abbreviation API for Intl.NumberFormat

Intl.NumberFormat

Syntax

new Intl.NumberFormat([locales[, options]])
Intl.NumberFormat.call(this[, locales[, options]])

Parameters

@andkerosine
andkerosine / raskell.rb
Created August 15, 2012 05:56
Haskell-like list comprehensions in Ruby
$stack, $draws = [], {}
def method_missing *args
return if args[0][/^to_/]
$stack << args.map { |a| a or $stack.pop }
$draws[$stack.pop(2)[0][0]] = args[1] if args[0] == :<
end
class Array
def +@