[2020][ruby][18] refactor
change nstyowurppvwzlrttmsrspyrysuxxptk
commit 5ba356128b2fe83d32f8136bd14d95407f529f43
author Alpha Chen <alpha@kejadlen.dev>
date
parent ltvurvtv
diff --git a/2020/ruby/day_18.rb b/2020/ruby/day_18.rb
index daf50a7..a38654f 100644
--- a/2020/ruby/day_18.rb
+++ b/2020/ruby/day_18.rb
@@ -35,21 +35,21 @@ def evaluate(input)
   ss = StringScanner.new(input)
   until ss.eos?
     ss.scan(/\s*/)
-    case
-    when n = ss.scan(/\d+/)
-      stack << stack.pop[n.to_i]
-    when ss.scan(/\+/)
-      stack << ->(x) { stack.pop + x }
-    when ss.scan(/\*/)
-      stack << ->(x) { stack.pop * x }
-    when ss.scan(/\(/)
-      stack << ->(x) { x }
-    when ss.scan(/\)/)
-      n = stack.pop
-      stack << stack.pop[n]
-    else
-      fail
-    end
+    stack << case
+             when n = ss.scan(/\d+/)
+               stack.pop[n.to_i]
+             when ss.scan(/\+/)
+               ->(x) { stack.pop + x }
+             when ss.scan(/\*/)
+               ->(x) { stack.pop * x }
+             when ss.scan(/\(/)
+               ->(x) { x }
+             when ss.scan(/\)/)
+               n = stack.pop
+               stack.pop[n]
+             else
+               fail
+             end
   end
 
   stack.pop