Skip to content

Instantly share code, notes, and snippets.

View undecided's full-sized avatar

Matthew Bennett-Lovesey undecided

View GitHub Profile
def a(p)
p.call()
raise "The world is safe"
end
def b
x = Proc.new { return Proc.new { return false } }
a(x).call
raise 'Maybe here, we might save the world. Let us do that.'
end
@undecided
undecided / nil-array.rb
Created December 21, 2013 16:35
Answer to the question: how to initialise a multi-dimensional array, filled with nils, in ruby?
# My answer at the time was to do something like this
[[nil]*3]*4
#=> [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
# The next question was whether I knew some initializer to do that for us.
# Apparently, there is:
Array.new(4) { Array.new(3) }
#=> [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
# But that wasn't the brainwave my brain came up with just now.
@undecided
undecided / fisher_yates_shuffle.coffee
Last active January 21, 2016 14:36 — forked from CurtisHumphrey/fisher_yates_shuffle.coffee
Fisher-Yates shuffle (in-place) in coffeescript
###
Randomize array element order in-place.
Using Fisher-Yates shuffle algorithm.
###
Array.prototype.shuffle = ->
for i in [(@length - 1) .. 0]
j = Math.floor(Math.random() * (i + 1))
[@[i], @[j]] = [@[j], @[i]]
@
@undecided
undecided / implicit_returns_with_ensure.rb
Created August 24, 2012 09:12
I got caught out by this. Anyone want to guess which string gets returned by this method?
def foo
raise "I iz a fool"
"But you don't know, man"
rescue Exception => e
"I caught your foolness"
ensure
"and I returned you a fish"
end