case_class
case_class copied to clipboard
Scala-like case classes for Ruby
= case_class
Scala-like case classes for Ruby
== SYNOPSIS:
require "case_class" include CaseClass
Number = Case[:n] Sum = Case[:e1, :e2]
evaluation with pattern matching
def eval(n) case n when Sum[e1 = _, e2 = _] then eval(e1) + eval(e2) when Number[n = _] then n end end
(1 + 2) + (3 + 4) => 10
expr = Sum[Sum[Number[1], Number[2]], Sum[Number[3], Number[4]]] p eval(expr) #=> 10
== LICENSE:
Copyright:: Yusuke Endoh [email protected] License:: Ruby's