Skip to content

Instantly share code, notes, and snippets.

@shugo
Created March 1, 2024 07:47
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 shugo/6f45d540ae0d53a105a753a9c73ea64e to your computer and use it in GitHub Desktop.
Save shugo/6f45d540ae0d53a105a753a9c73ea64e to your computer and use it in GitHub Desktop.
[Feature #20318] Example
# before
def balance(*args)
case args
in [RedFork[a, xk, xv, b], yk, yv, RedFork[c, zk, zv, d]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[RedFork[a, xk, xv, b], yk, yv, c], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[a, xk, xv, RedFork[b, yk, yv, c]], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, RedFork[b, yk, yv, RedFork[c, zk, zv, d]]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, RedFork[RedFork[b, yk, yv, c], zk, zv, d]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, b]
BlackFork[a, xk, xv, b]
end
end
# after
def balance(...)
in [RedFork[a, xk, xv, b], yk, yv, RedFork[c, zk, zv, d]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[RedFork[a, xk, xv, b], yk, yv, c], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[a, xk, xv, RedFork[b, yk, yv, c]], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, RedFork[b, yk, yv, RedFork[c, zk, zv, d]]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, RedFork[RedFork[b, yk, yv, c], zk, zv, d]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, b]
BlackFork[a, xk, xv, b]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment