-
Notifications
You must be signed in to change notification settings - Fork 48
side by side comparison
Gavin Haynes edited this page Oct 11, 2019
·
54 revisions
CoffeeScript | Coco |
---|---|
last = (a) -> a[a.length-1] |
last = -> it[*-1] |
class equals constructor: (x, y) -> return `x == y` |
function equals @@0 == @@1 |
$('.account') .addClass('active') .show 'slow' |
$ \.account .addClass \active .show \slow |
pythagoras = [] for a in [9..1] for b in [a...99] by 1 h = (a*a + b*b) ** 0.5 pythagoras.push [a, b, h] unless h % 1 |
pythagoras = for a from 9 to 1 by -1 for b from a til 99 h = (a*a + b*b) ** 0.5 [a, b, h] unless h % 1 |
for file, index in ['head', 'body', 'tail'] do (file, index, time = new Date) => fs.readFile file, (err, contents) => @compile file, index, contents, time |
for let file, index of <[head body tail]> let time = new Date err, contents <~ fs.readFile file @compile file, index, contents, time |
mixin = (objects...) -> for obj in objects @[key] = val for own key, val of obj this |
mixin = (...objects) -> for objects => @ <<< & this |
loop node = node.parentNode break unless node instanceof Element or node instanceof Elephant |
do node.=parentNode while node instanceof [Element, Elephant] |
alert( try nonexistent / undefined catch error "And the error is ... #{error}" ) |
alert do try nonexistent / void catch "And the error is ... #e" |
exports.Cat = class Cat extends Animal constructor: (@name) -> super @meowed = 0 @interval: 5000 meow: => ++@meowed play: -> setInterval @meow, @constructor.interval bark: -> throw Error 'unimplemented' |
export class Cat extends Animal (@name) -> super ... @meowed = 0 @meow = ~> ++@meowed @interval = 5000ms play: -> setInterval @meow, ..interval bark: -> ... |
switch day when "Fri", "Sat" if day isnt rainy go bingo go dancing when "Sun" then go church else go work |
switch day case \Fri \Sat if day is not rainy go bingo go dancing case \Sun then go church default go work |
(-> if match = /\d+/.exec location.hash @value = match[0] @focus() else @disabled = yes ).call document.getElementById 'page' |
let this = document.getElementById \page if /\d+/exec location.hash @value = that.0 @focus! else @disabled = true |
|
|
RegExp ///he (re){1,2} gex///.source, flag |
//he (re){1,2} gex #flag//? |
dicts = [ I2: [ [1, 0] [0, 1] ] , 'baz qux': 2 ] assert dicts[1]['baz qux'] is 2 |
|
child = new class extends prototype: parent child.x = 6 child.y = 9 |
child = ^parent <<< x: 6, y: 9 |
options = {} options[k] = v for own k, v of defaults options[key] = value run options |
run {...defaults, (key): value} |
x = !x |
!=x |
Array(-~num).join(str).replace /\D+/g, '' |
"#str" * num - /\D+/g |
biggest = if a > b then a else b |
biggest = a >? b |
pages = (com.github ||= {}).satyr ||= [] |
pages = com@github@@satyr |
options = collapsible: true, active: false |
options = {+collapsible, -active} |
rotate = (point) -> if 0 of point then [point[2], point[0], point[1]] else x: point.z, y: point.x, z: point.y |
rotate = (point) -> if 0 in point then point[2 0 1] else point{x: z, y: x, z: y} |
(String.fromCharCode i for i in [65..90]) |
[\A to \Z] |