Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mruby
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
mruby
Commits
7ea8803e
Commit
7ea8803e
authored
Sep 10, 2014
by
Yukihiro "Matz" Matsumoto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add benchmark/bm_app_lc_fizzbuzz.rb
parent
c01082e2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
0 deletions
+52
-0
benchmark/bm_app_lc_fizzbuzz.rb
benchmark/bm_app_lc_fizzbuzz.rb
+52
-0
No files found.
benchmark/bm_app_lc_fizzbuzz.rb
0 → 100644
View file @
7ea8803e
#
# FizzBuzz program using only lambda calculus
#
# This program is quoted from
# "Understanding Computation" by Tom Stuart
# http://computationbook.com/
#
# You can understand why this program works fine by reading this book.
#
solution
=
->
k
{
->
f
{
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
l
{
->
x
{
->
g
{
->
b
{
b
}[
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
l
]][
x
][
->
y
{
g
[
f
[
->
l
{
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
l
]]
}[
l
]][
x
][
g
]][
->
l
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
l
]]
}[
l
]][
y
]
}]
}
}
}
}][
k
][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
->
l
{
->
x
{
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
l
][
f
[
x
]]
}
}]
}
}[
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
m
][
n
]][
->
x
{
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
f
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
m
]][
n
]][
m
][
x
]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]]
}
}
}][
->
p
{
->
x
{
p
[
x
]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
x
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
}
}]][
->
n
{
->
b
{
b
}[
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
m
]][
->
x
{
f
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]][
n
][
x
]
}][
m
]
}
}
}][
n
][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
p
[
x
]]]]]]]]]]]]]]]
}
}]]][
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]][
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]][
->
b
{
b
}[
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
m
]][
->
x
{
f
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]][
n
][
x
]
}][
m
]
}
}
}][
n
][
->
p
{
->
x
{
p
[
p
[
p
[
x
]]]
}
}]]][
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]][
->
b
{
b
}[
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
m
]][
->
x
{
f
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]][
n
][
x
]
}][
m
]
}
}
}][
n
][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]][
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]]]][
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]][
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
n
{
->
l
{
->
x
{
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
l
{
->
x
{
->
g
{
->
b
{
b
}[
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
l
]][
x
][
->
y
{
g
[
f
[
->
l
{
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
l
]]
}[
l
]][
x
][
g
]][
->
l
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
l
]]
}[
l
]][
y
]
}]
}
}
}
}][
l
][
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}[
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
x
]][
->
l
{
->
x
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
y
}
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
x
][
l
]]
}
}]
}
}[
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}[
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
x
{
->
y
{
x
}
}][
->
x
{
->
y
{
x
}
}]][
->
x
{
f
[
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
m
]][
->
x
{
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
f
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]][
n
]][
x
]
}][
->
p
{
->
x
{
x
}
}]
}
}
}][
n
][
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]][
x
]
}]][
->
f
{
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}[
->
x
{
f
[
->
y
{
x
[
x
][
y
]
}]
}]
}[
->
f
{
->
m
{
->
n
{
->
b
{
b
}[
->
m
{
->
n
{
->
n
{
n
[
->
x
{
->
x
{
->
y
{
y
}
}
}][
->
x
{
->
y
{
x
}
}]
}[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]]
}
}[
n
][
m
]][
->
x
{
f
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
p
[
->
x
{
->
y
{
x
}
}]
}[
n
[
->
p
{
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]][
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}[
->
p
{
p
[
->
x
{
->
y
{
y
}
}]
}[
p
]]]
}][
->
x
{
->
y
{
->
f
{
f
[
x
][
y
]
}
}
}[
->
p
{
->
x
{
x
}
}][
->
p
{
->
x
{
x
}
}]]]
}][
m
]
}
}[
m
][
n
]][
n
][
x
]
}][
m
]
}
}
}][
n
][
->
m
{
->
n
{
n
[
->
m
{
->
n
{
n
[
->
n
{
->
p
{
->
x
{
p
[
n
[
p
][
x
]]
}
}
}][
m
]
}
}[
m
]][
->
p
{
->
x
{
x
}
}]
}
}[
->
p
{
->
x
{
p
[
p
[
x
]]
}
}][
->
p
{
->
x
{
p
[
p
[
p
[
p
[
p
[
x
]]]]]
}
}]]]
}
}][
n
]]]]
}]
FIRST
=
->
l
{
LEFT
[
RIGHT
[
l
]]
}
IF
=
->
b
{
b
}
LEFT
=
->
p
{
p
[
->
x
{
->
y
{
x
}
}
]
}
RIGHT
=
->
p
{
p
[
->
x
{
->
y
{
y
}
}
]
}
IS_EMPTY
=
LEFT
REST
=
->
l
{
RIGHT
[
RIGHT
[
l
]]
}
def
to_integer
(
proc
)
proc
[
->
n
{
n
+
1
}][
0
]
end
def
to_boolean
(
proc
)
IF
[
proc
][
true
][
false
]
end
def
to_array
(
proc
)
array
=
[]
until
to_boolean
(
IS_EMPTY
[
proc
])
array
.
push
(
FIRST
[
proc
])
proc
=
REST
[
proc
]
end
array
end
def
to_char
(
c
)
'0123456789BFiuz'
.
slice
(
to_integer
(
c
))
end
def
to_string
(
s
)
to_array
(
s
).
map
{
|
c
|
to_char
(
c
)
}.
join
end
answer
=
to_array
(
solution
).
map
do
|
p
|
to_string
(
p
)
end
answer_str
=
answer
.
to_a
# puts answer_str
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment