This file contains hidden or 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
require "tco_method" | |
class TCOInstance | |
extend TCOMethod::Mixin | |
attr_reader :tco_cycles | |
def initialize | |
@tco_cycles = 0 | |
end |
This file contains hidden or 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
def itoa(int, base = 10) | |
str = "" | |
while int > 0 | |
str = ((int % base) + 48).chr + str | |
int /= base | |
end | |
str | |
end | |
def itoarr(int, base = 10) |
This file contains hidden or 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
require "benchmark/ips" | |
def recursive_factorial(n) | |
n < 2 ? 1 : n * recursive_factorial(n - 1) | |
end | |
def tail_recursive_factorial(n, accumulator = 1) | |
n < 2 ? accumulator : tail_recursive_factorial(n - 1, n * accumulator) | |
end |
This file contains hidden or 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
require 'tco_method' | |
module StackBuster | |
def self.fact_yielder(n, acc = 1, &block) | |
block.call(acc) | |
n <= 1 ? acc : fact_yielder(n - 1, n * acc, &block) | |
end | |
end | |
puts "StackBuster:" |
This file contains hidden or 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
or_result = nil | |
begin | |
or_result = true | Seriously(this(is(valid(Ruby!)))) | |
rescue NameError | |
puts "NameError :(" | |
end | |
# Name Error :( | |
or_result | |
# => nil |
This file contains hidden or 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 PrimeFinder | |
attr_reader :limit, :primes | |
def initialize(limit) | |
@limit = limit | |
@primes = [] | |
generate_primes!(limit) | |
end | |
def prime?(candidate) |
This file contains hidden or 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
# Add to require from script/rails before rails/commands is required. | |
if /^c(?:onsole)?$/ === ARGV[0] && index = ARGV.index { |arg| /-(t|-tag)/ === arg } | |
# Intercept the arguments vector before it is passed to Rails::Console. | |
# Drop the -t or --tag arg and following argument which should be the tag | |
# itself. That's all that should need to be done because the tag will show up | |
# in the command name given how the command was invoked. | |
ARGV.slice!(index, 2) | |
end |
This file contains hidden or 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
# Project Euler #8 - Largest product in a series | |
# https://projecteuler.net/problem=8 | |
# | |
# Find the thirteen adjacent digits in the 1000-digit number that have the | |
# greatest product. What is the value of this product? | |
def largest_product_in_series(series, adjacency_length = 13) | |
factors = [] | |
largest_product = 0 | |
current_product = 1 |
This file contains hidden or 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
require 'benchmark/ips' | |
number = "731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952853208805511125406987471585238630507156932909632952274430435576689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749303589072962904915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881220235421809751254540594752243525849077116705560136048395864467063244157221553975369781797784617406495514929086256932197846862248283972241375657056057490261407972968652414535100474821663704844031998900088952434506585412275886668811642717147992444292823086346567481391912316282458617866458359124566529476545682848912883142607690042242190226710556263211111093705442175069416589604080719840385096245544436298123098787992724428490918884580156166097919133875499200524063689912560717606058861164671094050775410022569831552000559357297257163626956188267042825248360082325753042 |
This file contains hidden or 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
module LexicalScope | |
SCOPED_CONSTANT = [:lexical_scope].freeze | |
def scoped_value | |
value = defined?(super) ? super.dup : [] | |
value.concat(SCOPED_CONSTANT) | |
end | |
end | |
module IsWeird |