This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NAND = lambda { |i, j| !(i && j) } | |
NOT = lambda { |i| NAND[i, i] } | |
AND = lambda { |i, j| NOT[NAND[i, j]] } | |
OR = lambda { |i, j| NAND[NAND[i, i], NAND[j, j]] } | |
NOR = lambda { |i, j| NOT[OR[i, j]] } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# pnodes => path | |
# ppath => parent | |
class Zipper | |
attr_reader :parent, :path, :node, :lefts, :rights, :at_end | |
def initialize(branch, children, make_node, node, lefts = nil, path = nil, parent = nil, rights = nil, changed = false, at_end = false) | |
@branch = branch | |
@children = children | |
@make_node = make_node |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>> 'a11'.split('').map { |e| e[/\d/] ? e : e.ord }.join | |
=> "9711" | |
>> def conv str | |
>> str.split('').map { |e| e[/\d/] ? e : e.ord }.join | |
>> end | |
=> nil | |
>> a | |
=> ["a", "a1", "a12", "b", "a2"] | |
>> a.sort_by { |e| conv e} | |
=> ["a", "a1", "a12", "a2", "b"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Tree | |
attr_accessor :children, :node_name | |
def initialize(name, children={}) | |
@children = children | |
@node_name = name | |
end | |
def visit_all(&block) | |
visit &block |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Generate all possible combinations for a 46-point win in the game of | |
# Goofspiel. | |
# | |
cards = [*1..13] | |
res = [*4..13].map do |n| | |
cards.combination(n). | |
select { |cards| cards.reduce(:+) == 46 }. | |
map(&:sort). | |
map(&:reverse) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import sys | |
import urllib2 | |
import simplejson | |
def get_info(adress): | |
print "************************************************" | |
api = "http://freegeoip.net/json/" + adress | |
try: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# run using ```rvm jruby-1.6.7 do jruby "-J-Xmx2000m" "--1.9" tej.rb``` | |
require 'rubygems' | |
require 'nokogiri' | |
require 'csv' | |
f = File.open("/tmp/preview.html") | |
doc = Nokogiri::HTML(f) | |
csv = CSV.open("/tmp/output.csv", 'w',{:col_sep => ",", :quote_char => '\'', :force_quotes => true}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class String | |
def vowel? | |
match(/[aeiou]/i) | |
end | |
def constant? | |
!match(/[aeiou]/i) | |
end | |
def rotate(n = 1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
# Get Sublime to use your rvm ruby... Change your ~/Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.sublime-build to this, replacing YOURUSERNAME: | |
{ | |
"cmd": [ | |
"bundle", "exec", "/Users/YOURUSERNAME/.rvm/bin/rvm-auto-ruby", "$file" | |
], | |
"file_regex": "^(...*?):([0-9]*):?([0-9]*)", | |
"selector": "source.ruby" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$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 +@ |