Here's the standard example:
var x = "bar";
(function() {
console.log(x) // undefined
var x = 42;
})()
But what happens when you have a parameter?
pygmentize -f rtf -O fontface=Menlo -o examples.rtf examples.coffee |
lets = (vals, fn) -> fn.apply @, vals | |
lets [1, [2, 3]], (a, [b, c]) -> | |
a is 1 | |
b is 2 | |
c is 3 |
class HashMap | |
# non-implementation of a HashMap :) | |
get: (key) -> @[key] | |
put: (key, val) -> @[key] = val | |
HashMapC = (keyContract, valContract) -> | |
?{ | |
get: ((keyContract) -> valContract) | |
put: (keyContract, valContract) -> Any |
== Access of unallocated memory == | |
address 0 | |
at test_unallocated (file_name.js:3:0) | |
== Access of uninitialized memory == | |
address 0 | |
at test_unallocated (file_name.js:3:0) | |
== Free of unallocated memory == | |
address 8184 |
/* | |
* grunt | |
* https://github.com/cowboy/grunt | |
* | |
* Copyright (c) 2012 "Cowboy" Ben Alman | |
* Copyright (c) 2012 John K. Paul @johnkpaul | |
* Licensed under the MIT license. | |
* http://benalman.com/about/license/ | |
*/ |
Here's the standard example:
var x = "bar";
(function() {
console.log(x) // undefined
var x = 42;
})()
But what happens when you have a parameter?
macro sexp { | |
case () => { | |
; | |
} | |
case ($p) => { | |
$p | |
} | |
case ($x $y) => { | |
$x($y); | |
} |
macro conspair { | |
case [$head] => { [$head] } | |
case [$head $tail ...] => { | |
[$head, conspair [$tail ...]] | |
} | |
} | |
conspair [1 2 3 4] |
macro def { | |
case $name:ident ( $($params:ident : $type:ident) (,) ...) $body => { | |
// just throwing away the type annotation. The semantics of type | |
// annotations left as an exercise to the reader :) | |
function $name ($params (,) ...) $body | |
} | |
} | |
def add (a : Number, b : Number) { | |
return a + b; |
macro null_helper { | |
case ($processed ...) ($rest) => { | |
$processed (.) ... . $rest | |
} | |
case ($processed ...) ($rest_head $rest ...) => { | |
$processed (.) ... . $rest_head | |
&& null_helper ($processed ... $rest_head) ($rest ...) | |
} | |
} |