Skip to content

Instantly share code, notes, and snippets.

@dasch
Forked from dkubb/gist:1130086
Created August 7, 2011 19:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dasch/1130665 to your computer and use it in GitHub Desktop.
Save dasch/1130665 to your computer and use it in GitHub Desktop.
case with predicates
require 'rubygems'
require 'backports' # aliases Proc#=== to Proc#call
rs = (0..10000).to_a.sample(30)
rs.each do |r|
case r
when lambda { |n| n.zero? } then puts "#{r} is zero"
when lambda { |n| (n % 5).zero? } then puts "#{r} is fiven"
when lambda { |n| (n % 4).zero? } then puts "#{r} is fourven"
when lambda { |n| (n % 3).zero? } then puts "#{r} is threeven"
when lambda { |n| n.even? } then puts "#{r} is even"
when lambda { |n| n.odd? } then puts "#{r} is odd"
else
raise 'unpossible'
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment