The ICFP2024 contest was held June29 thru July 1. The contest consisted of five parts: ICFP Language, Lambdaman maze, Starship flying, 3D - graph programming, and Efficiency - processing complex ICFP message to a numerical value.
The Lambdaman 6 maze is a single row of width 200 with L at index 1. Columns 2 thru 200 contain '.' a power-dot or piece-of-cheese depending Pacman or Mouse preference.
This maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers.
The contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.
The puzzle was given in ICFP to produce the maze text string.
B. SF B$ B$ L" B$ L" B$ L# B$ v" B$ v# v# L# B$ v" B$ v# v# L$ L# ? B= v# I" v" B. v" B$ v$ B- v# I" Sl I#,
The full ICFP language is a comment block in the function template. This is written as a Functional Program which appears is best addressed in Haskell.
The contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.
B. S3/,6%},!-"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$
This challenge is to return a string of 199 'R's with minimal matlab program size.
As of 7/9/24 I still can not make either an ICFP reader or writer beyond a simple string converter. If anyone is able to make an interpreter please post in the comment. I had never heard of Lambda Calculus or Haskell prior to this event. Contest write-ups said they took up to 10 hours to make a working ICFP reader. I will be posting the entire ICFP2024 contest challenges and best solutions.
Solution Stats
Problem Comments
1 Comment
Solution Comments
Show comments
Loading...
Problem Recent Solvers23
Suggested Problems
-
3807 Solvers
-
Create a cell array out of a struct
2406 Solvers
-
498 Solvers
-
Back to basics 24 - Symbolic variables
144 Solvers
-
314 Solvers
More from this Author308
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
Had a small epiphany on processing based on one of the write-ups. For Lamda 6, needing >199 Rs.
The script to solve was:
(let ((triple (lambda (x) (concat x x x))))
(concat "solve lambdaman6 "
(triple (triple (triple "RRRRRRRR")))))
which becomes ICFP
B$ L! B. S3/,6%},!-"$!-!.[} B$ v! B$ v! B$ v! SLLLLLLLL L! B. v! B. v! v!
The 'solve Lambdaman6 ' is 'S3/,6%},!-"$!-!.[}'
The leftmost B$ L! means define function L!, aka triple() comes from L! B. v! B. v! v! thus L!=triple(x)=[v! v! v!], triple repeat
the second part of the first concat is
B$ v! B$ v! B$ v! SLLLLLLLL The usage B$ v! is L! thus
triple(triple(triple(SLLLLLLLL) )) thus where L is R we get
8Rs *3*3*3=27*8 Rs=216 Rs.
There are multiple ways to come to the same function substitution and variable load.