{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":60591,"title":"ICFP2024 001: Lambdaman 6","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe 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.\r\nThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB. 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#,\r\nThe 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.\r\nThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\r\nB. S3/,6%},!-\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\r\n\r\nThis challenge is to return a string of 199 'R's with minimal matlab program size.\r\n\r\nAs 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.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 537px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 268.5px; transform-origin: 407px 268.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 365px 8px; transform-origin: 365px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 301px 8px; transform-origin: 301px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 331px 8px; transform-origin: 331px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 331px 8px; transform-origin: 331px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. 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#,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 294px 8px; transform-origin: 294px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 235.5px 8px; transform-origin: 235.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. S3/,6%},!-\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 250px 8px; transform-origin: 250px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of 199 'R's with minimal matlab program size.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAs 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman6(m)\r\n% m is a maze where '.' is a power-dot to eat, L is Lambdaman the token being moved, \r\n% '#' is a wall, and Linefeed(ascii 10) is right edge of maze\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman6 is a string of 199 R characters, char(82*ones(1,199))\r\n v='R';\r\nend\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nm=['L' char(46*ones(1,199))]; % 46 is .\r\nv = Lambdaman6(m)\r\nvd=double(v); % keep only L-76 R-82\r\nvd(vd\u003e82)='';vd(vd\u003c76)=''; vd(vd\u003e76 \u0026 vd\u003c82)=''; % Remove non-operable characters\r\nvalid=0;\r\nidx=1;\r\nmc=[0 ones(1,199)];\r\nfor i=1:length(vd)\r\n if vd(i)==82 % R\r\n  idx=idx+1;\r\n  mc(idx)=0;\r\n  if idx==200,break;end\r\n else % must be 76 L\r\n  if idx\u003e1\r\n   idx=idx-1;\r\n   mc(idx)=0;\r\n  end\r\n end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nend\r\n\r\nassert(valid)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-09T15:15:26.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T13:32:16.000Z","updated_at":"2026-03-31T11:17:56.000Z","published_at":"2024-07-09T15:15:26.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. 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#,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. S3/,6%},!-\\\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of 199 'R's with minimal matlab program size.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60608,"title":"ICFP2024 006: Lambda 21 - 3D","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\" B/ v# I% BT I\" BD B% v# I% Sl~aF   in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, a=\u003e#, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\r\nB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\" BD B% vp I% SO\u003eLF\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nThe ICFP competition is more about manual solving optimizations for each unique problem.\r\n Lambdaman21 was solved by Thirteen Team using tools. ThirteenTeam youtube ICFP2024\r\nThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 607px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 303.5px; transform-origin: 407px 303.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 338.5px 8px; transform-origin: 338.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 206.5px 8px; transform-origin: 206.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\" B/ v# I% BT I\" BD B% v# I% Sl~aF   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, a=\u0026gt;#, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 366px 8px; transform-origin: 366px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 360px 8px; transform-origin: 360px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\" BD B% vp I% SO\u0026gt;LF\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 50px; text-align: left; transform-origin: 384px 50px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: middle;width: 100px;height: 100px\" src=\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\" data-image-state=\"image-loaded\" width=\"100\" height=\"100\"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.youtube.com/watch?v=Xcm3S9VlqqY\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eThirteenTeam youtube ICFP2024\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v=Lambdaman21(m)\r\n%Manual sequence created using a display like ThirteenTeam\r\n%Draw paths from Top edge, right edge and left edge\r\n U='U';D='D';L='L';R='R';\r\n U2=repelem(U,199);\r\n D2=repelem(D,199);\r\n L2=repelem(L,199);\r\n R2=repelem(R,199);\r\n DUR=[D2 U2 R]; % Top edge\r\n LRD=[L2 R2 D]; % Right edge\r\n RLU=[R2 L2 U]; % Left edge Up\r\n RLD=[R2 L2 D]; % Left edge Down\r\n D95=repelem(D,95);\r\n D37=repelem(D,37);\r\n L100=repelem(L,100);\r\n U136=repelem(U,136);\r\n R15=repelem(R,15);\r\n R12=repelem(R,12);\r\n \r\n TE=repmat(DUR,1,200);\r\n RE=[D95 L2 D2 repmat(RLU,1,80) D37 R2 D repmat(LRD,1,104)];\r\n BE=[L100 U136 repmat(LRD,1,85) D D L2];\r\n LE=[repmat(RLU,1,90) D R15 repmat(DUR,1,21) repmat(RLD,1,5)];\r\n B3=[D37 D D R12 repmat(DUR,1,15) D37 repmat(RLU,1,6) ];\r\n v=[U2 L2 TE RE BE LE B3];\r\nend % Lambdaman21","test_suite":"%%\r\nvalid=0;\r\n% L lambdaman 1,   . Cheese 2,   # Wall 0\r\nms=['........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'.................................##################.....................................................................................................................................................'\r\n'...........................#############################................................................................................................................................................'\r\n'.....................######################################............................................#########################################........................................................'\r\n'.................#############################################.........................................################################################.................................................'\r\n'...............################################################........................................####################################################.............................................'\r\n'...............##################################################......................................########################################################.........................................'\r\n'...............####################################################....................................###########################################################......................................'\r\n'...............#####################################################...................................#############################################################....................................'\r\n'...............######################################################..................................###############################################################..................................'\r\n'...............#######################################################.................................#################################################################................................'\r\n'...............########################################################................................###################################################################..............................'\r\n'...............####################............#########################...............................####################################################################.............................'\r\n'...............##############.......................####################...............................#####################################################################............................'\r\n'...............##########.............................###################..............................##############........................#################################..........................'\r\n'...............######...................................##################.............................##############...............................###########################.........................'\r\n'...............###.......................................#################.............................##############...................................########################........................'\r\n'..........................................................#################............................##############.....................................#######################.......................'\r\n'...........................................................################............................##############........................................#####################......................'\r\n'............................................................###############............................##############..........................................####################.....................'\r\n'.............................................................###############...........................##############...........................................###################.....................'\r\n'.............................................................###############...........................##############.............................................##################....................'\r\n'..............................................................##############...........................##############..............................................##################...................'\r\n'..............................................................##############...........................##############...............................................#################...................'\r\n'..............................................................##############...........................##############................................................#################..................'\r\n'..............................................................##############...........................##############.................................................################..................'\r\n'...............................................................#############...........................##############..................................................################.................'\r\n'...............................................................#############L..........................##############..................................................################.................'\r\n'...............................................................#############...........................##############...................................................################................'\r\n'...............................................................#############...........................##############...................................................################................'\r\n'...............................................................#############...........................##############....................................................################...............'\r\n'...............................................................#############...........................##############....................................................################...............'\r\n'..............................................................##############...........................##############.....................................................###############...............'\r\n'..............................................................##############...........................##############.....................................................################..............'\r\n'..............................................................##############...........................##############......................................................###############..............'\r\n'.............................................................##############............................##############......................................................###############..............'\r\n'.............................................................##############............................##############......................................................###############..............'\r\n'............................................................##############.............................##############.......................................................###############.............'\r\n'............................................................##############.............................##############.......................................................###############.............'\r\n'...........................................................##############..............................##############.......................................................###############.............'\r\n'..........................................................###############..............................##############.......................................................###############.............'\r\n'........................................................################...............................##############........................................................##############.............'\r\n'.......................................................################................................##############........................................................###############............'\r\n'....................................................##################.................................##############........................................................###############............'\r\n'................................................#####################..................................##############........................................................###############............'\r\n'..............................######################################...................................##############........................................................###############............'\r\n'..............................#####################################....................................##############........................................................###############............'\r\n'..............................###################################......................................##############........................................................###############............'\r\n'..............................#################################........................................##############........................................................###############............'\r\n'..............................##############################...........................................##############........................................................###############............'\r\n'..............................##############################...........................................##############.........................................................##############............'\r\n'..............................#################################........................................##############...................................................................................'\r\n'..............................####################################.....................................##############.........................................................##############............'\r\n'..............................#####################################....................................##############.........................................................##############............'\r\n'..............................#######################################..................................##############.........................................................##############............'\r\n'..............................########################################.................................##############.........................................................##############............'\r\n'...............................................########################................................##############.........................................................##############............'\r\n'....................................................####################...............................##############........................................................###############............'\r\n'......................................................###################..............................##############........................................................###############............'\r\n'........................................................##################.............................##############........................................................###############............'\r\n'..........................................................#################............................##############........................................................###############............'\r\n'...........................................................################............................##############........................................................###############............'\r\n'............................................................################...........................##############........................................................###############............'\r\n'.............................................................###############...........................##############........................................................###############............'\r\n'..............................................................###############..........................##############........................................................###############............'\r\n'...............................................................##############..........................##############........................................................##############.............'\r\n'...............................................................###############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############.....................................................################..............'\r\n'.................................................................##############........................##############.....................................................###############...............'\r\n'.................................................................##############........................##############....................................................################...............'\r\n'.................................................................##############........................##############....................................................################...............'\r\n'.................................................................##############........................##############...................................................################................'\r\n'.................................................................##############........................##############...................................................################................'\r\n'.................................................................##############........................##############..................................................################.................'\r\n'................................................................##############.........................##############..................................................################.................'\r\n'................................................................##############.........................##############.................................................################..................'\r\n'................................................................##############.........................##############................................................#################..................'\r\n'...............................................................###############.........................##############...............................................#################...................'\r\n'...............................................................###############.........................##############..............................................##################...................'\r\n'..............................................................###############..........................##############.............................................##################....................'\r\n'..............................................................###############..........................##############...........................................###################.....................'\r\n'.............................................................################..........................##############..........................................###################......................'\r\n'............##..............................................################...........................##############........................................#####################......................'\r\n'............###............................................#################...........................##############.....................................#######################.......................'\r\n'............######.......................................##################............................##############...................................########################........................'\r\n'............########....................................##################.............................##############...............................###########################.........................'\r\n'............###########...............................####################.............................##############........................#################################..........................'\r\n'............###############........................######################..............................#####################################################################............................'\r\n'............#####################............###########################...............................####################################################################.............................'\r\n'............###########################################################................................##################################################################...............................'\r\n'............##########################################################.................................#################################################################................................'\r\n'............#########################################################..................................###############################################################..................................'\r\n'............########################################################...................................#############################################################....................................'\r\n'............######################################################.....................................##########################################################.......................................'\r\n'............#####################################################......................................########################################################.........................................'\r\n'..............#################################################........................................####################################################.............................................'\r\n'.................############################################..........................................################################################.................................................'\r\n'....................######################################.............................................#########################################........................................................'\r\n'.........................#############################..................................................................................................................................................'\r\n'..............................###################.......................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'];\r\n\r\nsize(ms)\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\n%for i=1:nr % Display maze numeric\r\n% fprintf('%i',m(i,:));fprintf('\\n');\r\n%end\r\n\r\nv = Lambdaman21(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\n\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman10 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nadd 45 rows above\r\n.................................##################.....................................................................................................................................................\r\n...........................#############################................................................................................................................................................\r\n.....................######################################............................................#########################################........................................................\r\n.................#############################################.........................................################################################.................................................\r\n...............################################################........................................####################################################.............................................\r\n...............##################################################......................................########################################################.........................................\r\n...............####################################################....................................###########################################################......................................\r\n...............#####################################################...................................#############################################################....................................\r\n...............######################################################..................................###############################################################..................................\r\n...............#######################################################.................................#################################################################................................\r\n...............########################################################................................###################################################################..............................\r\n...............####################............#########################...............................####################################################################.............................\r\n...............##############.......................####################...............................#####################################################################............................\r\n...............##########.............................###################..............................##############........................#################################..........................\r\n...............######...................................##################.............................##############...............................###########################.........................\r\n...............###.......................................#################.............................##############...................................########################........................\r\n..........................................................#################............................##############.....................................#######################.......................\r\n...........................................................################............................##############........................................#####################......................\r\n............................................................###############............................##############..........................................####################.....................\r\n.............................................................###############...........................##############...........................................###################.....................\r\n.............................................................###############...........................##############.............................................##################....................\r\n..............................................................##############...........................##############..............................................##################...................\r\n..............................................................##############...........................##############...............................................#################...................\r\n..............................................................##############...........................##############................................................#################..................\r\n..............................................................##############...........................##############.................................................################..................\r\n...............................................................#############...........................##############..................................................################.................\r\n...............................................................#############L..........................##############..................................................################.................\r\n...............................................................#############...........................##############...................................................################................\r\n...............................................................#############...........................##############...................................................################................\r\n...............................................................#############...........................##############....................................................################...............\r\n...............................................................#############...........................##############....................................................################...............\r\n..............................................................##############...........................##############.....................................................###############...............\r\n..............................................................##############...........................##############.....................................................################..............\r\n..............................................................##############...........................##############......................................................###############..............\r\n.............................................................##############............................##############......................................................###############..............\r\n.............................................................##############............................##############......................................................###############..............\r\n............................................................##############.............................##############.......................................................###############.............\r\n............................................................##############.............................##############.......................................................###############.............\r\n...........................................................##############..............................##############.......................................................###############.............\r\n..........................................................###############..............................##############.......................................................###############.............\r\n........................................................################...............................##############........................................................##############.............\r\n.......................................................################................................##############........................................................###############............\r\n....................................................##################.................................##############........................................................###############............\r\n................................................#####################..................................##############........................................................###############............\r\n..............................######################################...................................##############........................................................###############............\r\n..............................#####################################....................................##############........................................................###############............\r\n..............................###################################......................................##############........................................................###############............\r\n..............................#################################........................................##############........................................................###############............\r\n..............................##############################...........................................##############........................................................###############............\r\n..............................##############################...........................................##############.........................................................##############............\r\n..............................#################################........................................##############...................................................................................\r\n..............................####################################.....................................##############.........................................................##############............\r\n..............................#####################################....................................##############.........................................................##############............\r\n..............................#######################################..................................##############.........................................................##############............\r\n..............................########################################.................................##############.........................................................##############............\r\n...............................................########################................................##############.........................................................##############............\r\n....................................................####################...............................##############........................................................###############............\r\n......................................................###################..............................##############........................................................###############............\r\n........................................................##################.............................##############........................................................###############............\r\n..........................................................#################............................##############........................................................###############............\r\n...........................................................################............................##############........................................................###############............\r\n............................................................################...........................##############........................................................###############............\r\n.............................................................###############...........................##############........................................................###############............\r\n..............................................................###############..........................##############........................................................###############............\r\n...............................................................##############..........................##############........................................................##############.............\r\n...............................................................###############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############.....................................................################..............\r\n.................................................................##############........................##############.....................................................###############...............\r\n.................................................................##############........................##############....................................................################...............\r\n.................................................................##############........................##############....................................................################...............\r\n.................................................................##############........................##############...................................................################................\r\n.................................................................##############........................##############...................................................################................\r\n.................................................................##############........................##############..................................................################.................\r\n................................................................##############.........................##############..................................................################.................\r\n................................................................##############.........................##############.................................................################..................\r\n................................................................##############.........................##############................................................#################..................\r\n...............................................................###############.........................##############...............................................#################...................\r\n...............................................................###############.........................##############..............................................##################...................\r\n..............................................................###############..........................##############.............................................##################....................\r\n..............................................................###############..........................##############...........................................###################.....................\r\n.............................................................################..........................##############..........................................###################......................\r\n............##..............................................################...........................##############........................................#####################......................\r\n............###............................................#################...........................##############.....................................#######################.......................\r\n............######.......................................##################............................##############...................................########################........................\r\n............########....................................##################.............................##############...............................###########################.........................\r\n............###########...............................####################.............................##############........................#################################..........................\r\n............###############........................######################..............................#####################################################################............................\r\n............#####################............###########################...............................####################################################################.............................\r\n............###########################################################................................##################################################################...............................\r\n............##########################################################.................................#################################################################................................\r\n............#########################################################..................................###############################################################..................................\r\n............########################################################...................................#############################################################....................................\r\n............######################################################.....................................##########################################################.......................................\r\n............#####################################################......................................########################################################.........................................\r\n..............#################################################........................................####################################################.............................................\r\n.................############################################..........................................################################################.................................................\r\n....................######################################.............................................#########################################........................................................\r\n.........................#############################..................................................................................................................................................\r\n..............................###################.......................................................................................................................................................\r\nadd 50 rows below\r\n%}\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-12T05:01:51.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-11T16:20:17.000Z","updated_at":"2026-03-11T08:39:22.000Z","published_at":"2024-07-12T05:01:52.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ B$ L\\\" B$ L# B$ v\\\" B$ v# v# L# B$ v\\\" B$ v# v# L\\\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\\\" B/ v# I% BT I\\\" BD B% v# I% Sl~aF   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, a=\u0026gt;#, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\\\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\\\" BD B% vp I% SO\u0026gt;LF\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=Xcm3S9VlqqY\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThirteenTeam youtube ICFP2024\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60593,"title":"ICFP2024 002: Lambdaman 9","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"  in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\r\nB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u003e B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u003e\r\n\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\r\n\r\nAs 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.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 579px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 289.5px; transform-origin: 407px 289.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 339px 8px; transform-origin: 339px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380px 8px; transform-origin: 380px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"  in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 350px 8px; transform-origin: 350px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 287px 8px; transform-origin: 287px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u0026gt; B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u0026gt;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 364px 8px; transform-origin: 364px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAs 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman9(m)\r\n% m is a maze where 2 is cheese to eat, 1 is Lambdaman the token being moved, \r\n% 0 is a wall\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman9 is a string of about 2499 RDLU characters\r\n%Answers may vary if doing rows or columns first\r\n v='R';\r\nend\r\n\r\n%Lambdaman 9 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman9.glx\r\nB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"\r\n\r\nSolution\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman9.sol.glx\r\nB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u003e B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u003e\r\n\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nvalid=0;\r\nm=ones(50)*2; %Cheese bits are 2.  Walls will be 0 but none in this case.\r\nm(1)=1;  %Lambdaman is 1\r\n\r\nv = Lambdaman9(m);\r\nfprintf('Answer Length: %i\\n',length(v))\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman9 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  c=min(c+1,50);\r\n elseif v(i)=='L' % L\r\n  c=max(c-1,1);\r\n elseif v(i)=='U' % U\r\n  r=max(r-1,1);\r\n elseif v(i)=='D' % D\r\n  r=min(r+1,50);\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nend\r\n%mc\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nL.................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n%}\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-09T20:42:07.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T17:08:10.000Z","updated_at":"2025-12-03T18:41:13.000Z","published_at":"2024-07-09T20:42:07.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\\\"  in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. S3/,6%},!-\\\"$!-!.^} B$ B$ L! L\\\" B$ v! B$ v! B$ v! B$ v! B$ v! v\\\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u0026gt; B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60603,"title":"ICFP2024 003: Lambdaman 5","description":"The ICFP2024 contest was held June 29 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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\nThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\r\nB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  The usage B$ v\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\r\nThe big hint here is that ICFP O is U, \u003e is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\r\n\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nI will be posting the entire ICFP2024 contest challenges and best solutions.\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 728.767px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 364.383px; transform-origin: 407px 364.383px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 302px 8px; transform-origin: 302px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e was held June 29 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.5px 8px; transform-origin: 372.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 186px 8px; transform-origin: 186px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 230.267px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 115.133px; transform-origin: 391px 115.133px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.....########...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e....#...........\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e...#..######....\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e..#..#......#...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#..#...##...#..\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#..#..#L.#...#.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#...#....#...#.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e..#...####...#..\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e...#........#...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e....########....\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e................\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 350px 8px; transform-origin: 350px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 375px 8px; transform-origin: 375px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  The usage B$ v\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377px 8px; transform-origin: 377px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe big hint here is that ICFP O is U, \u0026gt; is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.75px; text-align: left; transform-origin: 384px 10.75px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 235.5px 8px; transform-origin: 235.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eI will be posting the entire ICFP2024 contest challenges and best solutions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman5(m)\r\n% m is a maze where 2 is cheese to eat, 1 is Lambdaman the token being moved, and\r\n% 0 is a wall\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman5 is a string of about 220 RDLU characters\r\n%Answers may vary wildly\r\n v='RDLLLU';\r\nend\r\n\r\n%Lambdaman 5 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nSlllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\n\r\nSolution\r\nB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO \r\nL! B. B. v! v! v! \r\n\r\nwhich defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  \r\nThe usage B$ v\" invokes triple(x) \r\nthus the main becomes triple(triple(triple(SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO) )) \r\nor 27 repeats of the string.\r\nThe big hint here is that ICFP O is U, \u003e is D, F is L, and L is R when decrypted. \r\nRunning into walls causes no movement and since this is a spiral maze there appears to be \r\na short sequence that spans all the cheesy bits when repeated.  \r\nTo me it was nuts that someone devised this short sequence.\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}\r\n\r\n","test_suite":"%%\r\nvalid=0;\r\n%   # Wall 0   L lambdaman 1,   . Cheese 2,   \r\n%11x16\r\nms=['.....########...'\r\n'....#...........'\r\n'...#..######....'\r\n'..#..#......#...'\r\n'.#..#...##...#..'\r\n'.#..#..#L.#...#.'\r\n'.#...#....#...#.'\r\n'..#...####...#..'\r\n'...#........#...'\r\n'....########....'\r\n'................'];\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\nfor i=1:nr % Display maze numeric\r\n fprintf('%i',m(i,:));fprintf('\\n');\r\nend\r\nfprintf('\\n');\r\n\r\nv = Lambdaman5(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\n[r,c]=find(m==1); % Lambdaman start point\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n%mc\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\n%}","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-10T06:39:55.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-10T05:41:35.000Z","updated_at":"2025-12-16T01:40:53.000Z","published_at":"2024-07-10T06:39:55.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e was held June 29 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.....########...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e....#...........\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e...#..######....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e..#..#......#...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#..#...##...#..\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#..#..#L.#...#.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#...#....#...#.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e..#...####...#..\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e...#........#...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e....########....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e................\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ L\\\" B. S3/,6%},!-\\\"$!-!.Z} B$ v\\\" B$ v\\\" B$ v\\\" SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\\\" as triple(x) from B$ L\\\" and L! B. B. v! v! v!  The usage B$ v\\\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe big hint here is that ICFP O is U, \u0026gt; is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI will be posting the entire ICFP2024 contest challenges and best solutions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60598,"title":"ICFP2024 004: Lambdaman 10","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"   in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\r\nB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u003e I8\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nThe ICFP competition is more about manual solving optimizations for each unique problem.\r\n Lambdaman21 was solved by Thirteen Team using tools. ThirteenTeam youtube ICFP2024\r\nThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 544px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 272px; transform-origin: 407px 272px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 369.5px 8px; transform-origin: 369.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 383.5px 8px; transform-origin: 383.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 354px 8px; transform-origin: 354px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 360px 8px; transform-origin: 360px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u0026gt; I8\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 50px; text-align: left; transform-origin: 384px 50px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: middle;width: 100px;height: 100px\" src=\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\" data-image-state=\"image-loaded\" width=\"100\" height=\"100\"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.youtube.com/watch?v=Xcm3S9VlqqY\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eThirteenTeam youtube ICFP2024\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v=Lambdaman10(m)\r\n%Simple solver going donw/up columns based upon apriori knowledge of wall structure.\r\n%\r\n%m wall-0  L-1  Cheezy-2  Empty-3\r\n v='';\r\n [nr,nc]=size(m);\r\n [tr,tc]=find(m==1);\r\n%Process Lambda10\r\n\r\n%'L..........#..........#..........#..........#.....' top\r\n%'.....#..........#..........#..........#..........#'\r\n%'..........#..........#..........#..........#......'\r\n\r\n%'....#..........#..........#..........#..........#.'  bottom\r\n%'.........#..........#..........#..........#.......'\r\n%'...#..........#..........#..........#..........#..'];\r\n\r\n%Down odd\r\n% Obstacle - go RDDL , special bottom cases \r\n%Up Even\r\n% Obstacle - go LUUR , special top cases\r\n\r\nwhile nnz(m==2) % Any remaining cheezy bits\r\n%Down odd\r\n while tr\u003cnr\r\n  % 'D'\r\n  m(tr,tc)=3;\r\n  if m(tr+1,tc)\u003e0 % 'D'\r\n   tr=tr+1;m(tr,tc)=1;v=[v 'D'];\r\n  else % wall \r\n   if tr==nr-1 %RD\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr+1;m(tr,tc)=1;v=[v 'D'];\r\n   else % RDDL\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tc=tc-1; m(tr,tc)=1;v=[v 'L'];\r\n   end\r\n  end\r\n end % tr\r\n \r\n %tr=nr\r\n if mod(tc,2)==1 % sitting at (nr,odd) \r\n   if m(nr,tc+1)\u003e0 % shift right\r\n    % 'R'\r\n    m(tr,tc)=3;\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   else % madj r is a wall (nr,tc+1)\r\n    %need to go up and right to get to even (nr-1,even)\r\n    % 'UR'\r\n    m(tr,tc)=3;\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n end %mod(tc,2)==1  odd column\r\n\r\n%Up Even\r\n while tr\u003e1  % case tr==2 and tr==1 has a wall?\r\n  % 'U'\r\n  m(tr,tc)=3;\r\n  if m(tr-1,tc)\u003e0 % 'U'\r\n   tr=tr-1;m(tr,tc)=1;v=[v 'U'];\r\n  else % wall\r\n   if tr==2 %RU\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr-1;m(tr,tc)=1;v=[v 'U'];\r\n   else % LUUR\r\n    tc=tc-1; m(tr,tc)=3;v=[v 'L'];\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tc=tc+1; m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n  end\r\n end % tr \r\n \r\n if nnz(m==2)==0,break;end\r\n \r\n %tr=1\r\n if mod(tc,2)==0 % sitting at (1,even) \r\n   if m(1,tc+1)\u003e0 % shift right\r\n    % 'R'\r\n    m(tr,tc)=3;\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   else % madj r is a wall (nr,tc+1)\r\n    %need to go down and right to get to odd (2,odd)\r\n    % 'DR'\r\n    m(tr,tc)=3;\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n end %mod(tc,2)==1  odd column\r\nend % while nnz(m==2)\r\n\r\nend % Lambdaman10\r\n\r\n%Lambdaman 10 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman10.glx\r\nB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"\r\n\r\nSolution\r\nB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u003e I8\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nvalid=0;\r\n% L lambdaman 1,   . Cheese 2,   # Wall 0\r\n\r\nms=['L..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'];\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\nfor i=1:nr % Display maze numeric\r\n fprintf('%i',m(i,:));fprintf('\\n');\r\nend\r\n\r\nv = Lambdaman10(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\n\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman10 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nL..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n%}\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-11T04:23:05.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T20:47:10.000Z","updated_at":"2024-07-11T04:23:06.000Z","published_at":"2024-07-11T04:23:06.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. SF B$ B$ L\\\" B$ L# B$ v\\\" B$ v# v# L# B$ v\\\" B$ v# v# L\\\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\\\" B+ v# I\\\" I\\\"   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ B$ L$ B$ v$ v$ L# L\\\" ? B= v\\\" Id S3/,6%},!-\\\"$!-!.VU} B. B$ B$ v# v# B% B* v\\\" I9 I,2X BT I\\\" BD B% v\\\" I% SFOL\u0026gt; I8\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=Xcm3S9VlqqY\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThirteenTeam youtube ICFP2024\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":60591,"title":"ICFP2024 001: Lambdaman 6","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe 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.\r\nThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB. 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#,\r\nThe 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.\r\nThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\r\nB. S3/,6%},!-\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\r\n\r\nThis challenge is to return a string of 199 'R's with minimal matlab program size.\r\n\r\nAs 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.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 537px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 268.5px; transform-origin: 407px 268.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 365px 8px; transform-origin: 365px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 301px 8px; transform-origin: 301px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 331px 8px; transform-origin: 331px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 331px 8px; transform-origin: 331px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. 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#,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 294px 8px; transform-origin: 294px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 235.5px 8px; transform-origin: 235.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. S3/,6%},!-\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 250px 8px; transform-origin: 250px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of 199 'R's with minimal matlab program size.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAs 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman6(m)\r\n% m is a maze where '.' is a power-dot to eat, L is Lambdaman the token being moved, \r\n% '#' is a wall, and Linefeed(ascii 10) is right edge of maze\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman6 is a string of 199 R characters, char(82*ones(1,199))\r\n v='R';\r\nend\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nm=['L' char(46*ones(1,199))]; % 46 is .\r\nv = Lambdaman6(m)\r\nvd=double(v); % keep only L-76 R-82\r\nvd(vd\u003e82)='';vd(vd\u003c76)=''; vd(vd\u003e76 \u0026 vd\u003c82)=''; % Remove non-operable characters\r\nvalid=0;\r\nidx=1;\r\nmc=[0 ones(1,199)];\r\nfor i=1:length(vd)\r\n if vd(i)==82 % R\r\n  idx=idx+1;\r\n  mc(idx)=0;\r\n  if idx==200,break;end\r\n else % must be 76 L\r\n  if idx\u003e1\r\n   idx=idx-1;\r\n   mc(idx)=0;\r\n  end\r\n end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nend\r\n\r\nassert(valid)\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-09T15:15:26.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T13:32:16.000Z","updated_at":"2026-03-31T11:17:56.000Z","published_at":"2024-07-09T15:15:26.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis maze is a string 'L....... (many dots) .....' of length 200. Future mazes will be 2D of integers. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman,onto every dot.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. 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#,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman6 solution was written in ICFP to reduce length versus 199 Rs.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. S3/,6%},!-\\\"$!-!.[} B$ L# B$ v# B$ v# B$ v# SLLLLLLLL L$ B. B. v$ v$ v$\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of 199 'R's with minimal matlab program size.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60608,"title":"ICFP2024 006: Lambda 21 - 3D","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\" B/ v# I% BT I\" BD B% v# I% Sl~aF   in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, a=\u003e#, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\r\nB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\" BD B% vp I% SO\u003eLF\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nThe ICFP competition is more about manual solving optimizations for each unique problem.\r\n Lambdaman21 was solved by Thirteen Team using tools. ThirteenTeam youtube ICFP2024\r\nThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 607px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 303.5px; transform-origin: 407px 303.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 338.5px 8px; transform-origin: 338.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 206.5px 8px; transform-origin: 206.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\" B/ v# I% BT I\" BD B% v# I% Sl~aF   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, a=\u0026gt;#, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 366px 8px; transform-origin: 366px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 360px 8px; transform-origin: 360px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\" BD B% vp I% SO\u0026gt;LF\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 50px; text-align: left; transform-origin: 384px 50px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: middle;width: 100px;height: 100px\" src=\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky48F1UmhbxUXMliA0WIjA0GFCgAYUOMoxgYVNI0yrDJFVdAkRmSAYAqFOrXs0aNYIeahx9Bq1xE58rKwi03s17N4Utj1bK6U289QEHFTiMSBEjSBUxcPwkwpSKqKpJcpRQKM69O4AWfVT+oRzuvXxvASGKiNEzaTZP8ubj8+YA6CR8+fhZJ/ChhhEqnfflJyAANmBSUoADJkhAEHyQchOCCcp3AB0kQRjhgAQM0cd/M1l4oXlLVBeShx8KCEEZochEYond3eAgSCuyiF8BVmQCU4wyEteCKTDmmKMAXJTiEo4+8raDiB0RWaR5E+zBCktKYvDDFm8M4ggmoZiSCiuqnBKKJYnQscULAuCHxUdKLmmeDZ4I11sHTsTxiJASmRIIE7qZV4hHaapZXgSKqIQgB1b00aZGoIhxQHkT8MgRjptApIopo3zCSSSF3HGGFTIkcGEAaqRE3gA9wGEgSJ78UF4ZSXIXqUb+rHBiCBgsBDCgE+6RdMcRfbxIkhu2codAihtBCtIogRyRp3xQPAmVH8EWx8ajro5ESh0r4DeFs0/F0d0H3GJkbEmFtCDfmVEN0Z0kxVZ7EiEYxMdHVJ4YwN20Go17UilWmJfAqU9twR0P7Rb3akqHLFDeCRw6ZQl3EBRM3MEpWaJBeV1ENQJ3o+Tr7kqgnODdADY+hQV37Gak70qexNtdEFDdwV0iHhv8kiUNeIfIU4pwR0jNE8M0iHcrPEUJd34A3RvFLT3hXSNOZcJdIErzxjRLpFzQ3RIOc3dI1btdzZIe3Q3wSVOQcEcJ2K2JvdIqInRnRlOAcCcK26y5vdL+H982hUZxFUi89EyscNBdyUr1UFwRgltN09/cvbFUKfYSRyHeq+m9UifR9obDUjIXx0njYdfEA3cC+GqUKh8UpwO1NtPkrddJucHdILAHTdMl3YV6FCWV94ZCuOJ+PJMF3B1xFCfIF7dIq7HTJAV3GRg1SQXcUcGn8TLNXtzdQq3yRgHckXDK9tHP1DN3zwPFCiEmdLdBJ2hyH1Mo3c3rkyVodOAdBqOrX/pmMgHurMEmrEiFKTghiUCoIQnbKY8HNDEi+8WEBtzJQkpA4ScAQMFRPRqgTJDAHSJsUE0N6EOFLAgTgRWHBSf0kQPOoLoKijAma+AOBmLIIg6ogU7+B2LhS/LAnQfwMEIhIMMkBCVEl/CtOAY4YoJOsIVCNMwkK5vJ0LhDvJFwUEYJaEKgsNhEniCpJF/0EQn80EX06a4m6ytODb3opxNATSRZlEkjugM+k6RRTVe4IvTeSJM4EgeIaOwgalSgOYvkMSaG6M4ZYzKpLyniDl3AAfniQ4G1uXFwNhFEd3ySikVooYDlYYAncwfKmvRBWEFRRR+y5R0KBJB0bbtJ6IgTMaGwQg8R5A4LJnmRR8IEcsSpHlFGoa7ubIGVjrPJyYoDg6OMoTsBgAQu83aTInAHCUhhQ3desM3M3QQG3MkYUrTQHUNgTjWNZIkDuOOGpKiCBdz++ZzKysiy7vxBKZXoHG8oWLwbvgQR3XHEUpzAnTTs06AuaUN3EPk77szgoYSUCRO4A4KmqKA4AThfMfmZElZAgDtNaIoZuBOckUKUJZPoTj2Zsgju3KGgGYWJRLkzxqWIgjtkwGkrZVID7hQAhEthQHGkINRoykQT3fnBU0BQHHC6NKcuIUN36vAUfBIHCE0tnUxWoTXu0M8pLiiOEMKaS5mQjTsqgMrGiJPSqw7VJarwH3faAJVg8sYKbOVmTHZJHAN0zCmn4I4XAmtOmIzCr72pAlQqwZ05MBaeMVmCd5b4FDvQzq5ObUndumODqCiBO4iriDFPUgmFdUebTzH+BQKK04BcUWS1JelE87jjhKgQljeMu2xq4hkSUJDAOwc4lFNSYbjixAGjd2XtabwzN6jYjjsEBa1YU2IIBZRHBuJ5iiWC15vSQje0JSlFFczzgLM6RRRx404e3jlclAyirOXZE0jwMIfwqoQUL+gOBUQqXNQQNyOE8Kp5ghoSiZKAEG0UySbiW9lyYlYko6jDR+WzWJHsFAAl2IN/R3IH13JnA8RULUkngixl5eeZI/kwaiwghtR65BE3MM/OLFxfWMkqDC0QaHw0SBIZq2YGbbgER1QhiB3EB108NrCkTkEKUFwqU2iwwgy8GyECXK7IxOmAFfSAiQgzJBSDmML+SeOTAgLTV5HxyUAkTmLk3ihABlNggx8UcYlQkAIVrEigKUBxCUb0wQxM8ICAMnC2QcI5QT/oY0nq/GjiPEDJn6y0fDaAu5RQWtOt2QDAHA1q7xSADII0yadLnRoWgMKGrOZOArhwS5WsmtVbSHGUY12BNczR07FmzQV2jMdg7+YASQiEroFtbAAk4AxuhnWzD3CEP0T7JakoRBSUWuoFdOHVZAw2A4LABkcsOyapQMQWFA3nEcgBqUGstABEYIQx8KESZs5JJuzABFTm6ARnsASUSmQABkxAAyFAQQyAMAUxvKEP0zm3UDYBiC/kYM35KUALuBCIRtNGJKFoxB5vshwEGYBAAgsgQACOkxwV+CAKX4jDITZh24/b/OY4z7nOd87znvv850APutCHTvSiG/3oSE+60pfO9KY7/elQj7rUp071qlv96ljPuta3zvWue/3rYA+72MdO9rKb/exoT7va1872trv97XAvekAAADs=\" data-image-state=\"image-loaded\" width=\"100\" height=\"100\"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.youtube.com/watch?v=Xcm3S9VlqqY\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eThirteenTeam youtube ICFP2024\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v=Lambdaman21(m)\r\n%Manual sequence created using a display like ThirteenTeam\r\n%Draw paths from Top edge, right edge and left edge\r\n U='U';D='D';L='L';R='R';\r\n U2=repelem(U,199);\r\n D2=repelem(D,199);\r\n L2=repelem(L,199);\r\n R2=repelem(R,199);\r\n DUR=[D2 U2 R]; % Top edge\r\n LRD=[L2 R2 D]; % Right edge\r\n RLU=[R2 L2 U]; % Left edge Up\r\n RLD=[R2 L2 D]; % Left edge Down\r\n D95=repelem(D,95);\r\n D37=repelem(D,37);\r\n L100=repelem(L,100);\r\n U136=repelem(U,136);\r\n R15=repelem(R,15);\r\n R12=repelem(R,12);\r\n \r\n TE=repmat(DUR,1,200);\r\n RE=[D95 L2 D2 repmat(RLU,1,80) D37 R2 D repmat(LRD,1,104)];\r\n BE=[L100 U136 repmat(LRD,1,85) D D L2];\r\n LE=[repmat(RLU,1,90) D R15 repmat(DUR,1,21) repmat(RLD,1,5)];\r\n B3=[D37 D D R12 repmat(DUR,1,15) D37 repmat(RLU,1,6) ];\r\n v=[U2 L2 TE RE BE LE B3];\r\nend % Lambdaman21","test_suite":"%%\r\nvalid=0;\r\n% L lambdaman 1,   . Cheese 2,   # Wall 0\r\nms=['........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'.................................##################.....................................................................................................................................................'\r\n'...........................#############################................................................................................................................................................'\r\n'.....................######################################............................................#########################################........................................................'\r\n'.................#############################################.........................................################################################.................................................'\r\n'...............################################################........................................####################################################.............................................'\r\n'...............##################################################......................................########################################################.........................................'\r\n'...............####################################################....................................###########################################################......................................'\r\n'...............#####################################################...................................#############################################################....................................'\r\n'...............######################################################..................................###############################################################..................................'\r\n'...............#######################################################.................................#################################################################................................'\r\n'...............########################################################................................###################################################################..............................'\r\n'...............####################............#########################...............................####################################################################.............................'\r\n'...............##############.......................####################...............................#####################################################################............................'\r\n'...............##########.............................###################..............................##############........................#################################..........................'\r\n'...............######...................................##################.............................##############...............................###########################.........................'\r\n'...............###.......................................#################.............................##############...................................########################........................'\r\n'..........................................................#################............................##############.....................................#######################.......................'\r\n'...........................................................################............................##############........................................#####################......................'\r\n'............................................................###############............................##############..........................................####################.....................'\r\n'.............................................................###############...........................##############...........................................###################.....................'\r\n'.............................................................###############...........................##############.............................................##################....................'\r\n'..............................................................##############...........................##############..............................................##################...................'\r\n'..............................................................##############...........................##############...............................................#################...................'\r\n'..............................................................##############...........................##############................................................#################..................'\r\n'..............................................................##############...........................##############.................................................################..................'\r\n'...............................................................#############...........................##############..................................................################.................'\r\n'...............................................................#############L..........................##############..................................................################.................'\r\n'...............................................................#############...........................##############...................................................################................'\r\n'...............................................................#############...........................##############...................................................################................'\r\n'...............................................................#############...........................##############....................................................################...............'\r\n'...............................................................#############...........................##############....................................................################...............'\r\n'..............................................................##############...........................##############.....................................................###############...............'\r\n'..............................................................##############...........................##############.....................................................################..............'\r\n'..............................................................##############...........................##############......................................................###############..............'\r\n'.............................................................##############............................##############......................................................###############..............'\r\n'.............................................................##############............................##############......................................................###############..............'\r\n'............................................................##############.............................##############.......................................................###############.............'\r\n'............................................................##############.............................##############.......................................................###############.............'\r\n'...........................................................##############..............................##############.......................................................###############.............'\r\n'..........................................................###############..............................##############.......................................................###############.............'\r\n'........................................................################...............................##############........................................................##############.............'\r\n'.......................................................################................................##############........................................................###############............'\r\n'....................................................##################.................................##############........................................................###############............'\r\n'................................................#####################..................................##############........................................................###############............'\r\n'..............................######################################...................................##############........................................................###############............'\r\n'..............................#####################################....................................##############........................................................###############............'\r\n'..............................###################################......................................##############........................................................###############............'\r\n'..............................#################################........................................##############........................................................###############............'\r\n'..............................##############################...........................................##############........................................................###############............'\r\n'..............................##############################...........................................##############.........................................................##############............'\r\n'..............................#################################........................................##############...................................................................................'\r\n'..............................####################################.....................................##############.........................................................##############............'\r\n'..............................#####################################....................................##############.........................................................##############............'\r\n'..............................#######################################..................................##############.........................................................##############............'\r\n'..............................########################################.................................##############.........................................................##############............'\r\n'...............................................########################................................##############.........................................................##############............'\r\n'....................................................####################...............................##############........................................................###############............'\r\n'......................................................###################..............................##############........................................................###############............'\r\n'........................................................##################.............................##############........................................................###############............'\r\n'..........................................................#################............................##############........................................................###############............'\r\n'...........................................................################............................##############........................................................###############............'\r\n'............................................................################...........................##############........................................................###############............'\r\n'.............................................................###############...........................##############........................................................###############............'\r\n'..............................................................###############..........................##############........................................................###############............'\r\n'...............................................................##############..........................##############........................................................##############.............'\r\n'...............................................................###############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'................................................................##############.........................##############.......................................................###############.............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############......................................................###############..............'\r\n'.................................................................##############........................##############.....................................................################..............'\r\n'.................................................................##############........................##############.....................................................###############...............'\r\n'.................................................................##############........................##############....................................................################...............'\r\n'.................................................................##############........................##############....................................................################...............'\r\n'.................................................................##############........................##############...................................................################................'\r\n'.................................................................##############........................##############...................................................################................'\r\n'.................................................................##############........................##############..................................................################.................'\r\n'................................................................##############.........................##############..................................................################.................'\r\n'................................................................##############.........................##############.................................................################..................'\r\n'................................................................##############.........................##############................................................#################..................'\r\n'...............................................................###############.........................##############...............................................#################...................'\r\n'...............................................................###############.........................##############..............................................##################...................'\r\n'..............................................................###############..........................##############.............................................##################....................'\r\n'..............................................................###############..........................##############...........................................###################.....................'\r\n'.............................................................################..........................##############..........................................###################......................'\r\n'............##..............................................################...........................##############........................................#####################......................'\r\n'............###............................................#################...........................##############.....................................#######################.......................'\r\n'............######.......................................##################............................##############...................................########################........................'\r\n'............########....................................##################.............................##############...............................###########################.........................'\r\n'............###########...............................####################.............................##############........................#################################..........................'\r\n'............###############........................######################..............................#####################################################################............................'\r\n'............#####################............###########################...............................####################################################################.............................'\r\n'............###########################################################................................##################################################################...............................'\r\n'............##########################################################.................................#################################################################................................'\r\n'............#########################################################..................................###############################################################..................................'\r\n'............########################################################...................................#############################################################....................................'\r\n'............######################################################.....................................##########################################################.......................................'\r\n'............#####################################################......................................########################################################.........................................'\r\n'..............#################################################........................................####################################################.............................................'\r\n'.................############################################..........................................################################################.................................................'\r\n'....................######################################.............................................#########################################........................................................'\r\n'.........................#############################..................................................................................................................................................'\r\n'..............................###################.......................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'\r\n'........................................................................................................................................................................................................'];\r\n\r\nsize(ms)\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\n%for i=1:nr % Display maze numeric\r\n% fprintf('%i',m(i,:));fprintf('\\n');\r\n%end\r\n\r\nv = Lambdaman21(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\n\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman10 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nadd 45 rows above\r\n.................................##################.....................................................................................................................................................\r\n...........................#############################................................................................................................................................................\r\n.....................######################################............................................#########################################........................................................\r\n.................#############################################.........................................################################################.................................................\r\n...............################################################........................................####################################################.............................................\r\n...............##################################################......................................########################################################.........................................\r\n...............####################################################....................................###########################################################......................................\r\n...............#####################################################...................................#############################################################....................................\r\n...............######################################################..................................###############################################################..................................\r\n...............#######################################################.................................#################################################################................................\r\n...............########################################################................................###################################################################..............................\r\n...............####################............#########################...............................####################################################################.............................\r\n...............##############.......................####################...............................#####################################################################............................\r\n...............##########.............................###################..............................##############........................#################################..........................\r\n...............######...................................##################.............................##############...............................###########################.........................\r\n...............###.......................................#################.............................##############...................................########################........................\r\n..........................................................#################............................##############.....................................#######################.......................\r\n...........................................................################............................##############........................................#####################......................\r\n............................................................###############............................##############..........................................####################.....................\r\n.............................................................###############...........................##############...........................................###################.....................\r\n.............................................................###############...........................##############.............................................##################....................\r\n..............................................................##############...........................##############..............................................##################...................\r\n..............................................................##############...........................##############...............................................#################...................\r\n..............................................................##############...........................##############................................................#################..................\r\n..............................................................##############...........................##############.................................................################..................\r\n...............................................................#############...........................##############..................................................################.................\r\n...............................................................#############L..........................##############..................................................################.................\r\n...............................................................#############...........................##############...................................................################................\r\n...............................................................#############...........................##############...................................................################................\r\n...............................................................#############...........................##############....................................................################...............\r\n...............................................................#############...........................##############....................................................################...............\r\n..............................................................##############...........................##############.....................................................###############...............\r\n..............................................................##############...........................##############.....................................................################..............\r\n..............................................................##############...........................##############......................................................###############..............\r\n.............................................................##############............................##############......................................................###############..............\r\n.............................................................##############............................##############......................................................###############..............\r\n............................................................##############.............................##############.......................................................###############.............\r\n............................................................##############.............................##############.......................................................###############.............\r\n...........................................................##############..............................##############.......................................................###############.............\r\n..........................................................###############..............................##############.......................................................###############.............\r\n........................................................################...............................##############........................................................##############.............\r\n.......................................................################................................##############........................................................###############............\r\n....................................................##################.................................##############........................................................###############............\r\n................................................#####################..................................##############........................................................###############............\r\n..............................######################################...................................##############........................................................###############............\r\n..............................#####################################....................................##############........................................................###############............\r\n..............................###################################......................................##############........................................................###############............\r\n..............................#################################........................................##############........................................................###############............\r\n..............................##############################...........................................##############........................................................###############............\r\n..............................##############################...........................................##############.........................................................##############............\r\n..............................#################################........................................##############...................................................................................\r\n..............................####################################.....................................##############.........................................................##############............\r\n..............................#####################################....................................##############.........................................................##############............\r\n..............................#######################################..................................##############.........................................................##############............\r\n..............................########################################.................................##############.........................................................##############............\r\n...............................................########################................................##############.........................................................##############............\r\n....................................................####################...............................##############........................................................###############............\r\n......................................................###################..............................##############........................................................###############............\r\n........................................................##################.............................##############........................................................###############............\r\n..........................................................#################............................##############........................................................###############............\r\n...........................................................################............................##############........................................................###############............\r\n............................................................################...........................##############........................................................###############............\r\n.............................................................###############...........................##############........................................................###############............\r\n..............................................................###############..........................##############........................................................###############............\r\n...............................................................##############..........................##############........................................................##############.............\r\n...............................................................###############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n................................................................##############.........................##############.......................................................###############.............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############......................................................###############..............\r\n.................................................................##############........................##############.....................................................################..............\r\n.................................................................##############........................##############.....................................................###############...............\r\n.................................................................##############........................##############....................................................################...............\r\n.................................................................##############........................##############....................................................################...............\r\n.................................................................##############........................##############...................................................################................\r\n.................................................................##############........................##############...................................................################................\r\n.................................................................##############........................##############..................................................################.................\r\n................................................................##############.........................##############..................................................################.................\r\n................................................................##############.........................##############.................................................################..................\r\n................................................................##############.........................##############................................................#################..................\r\n...............................................................###############.........................##############...............................................#################...................\r\n...............................................................###############.........................##############..............................................##################...................\r\n..............................................................###############..........................##############.............................................##################....................\r\n..............................................................###############..........................##############...........................................###################.....................\r\n.............................................................################..........................##############..........................................###################......................\r\n............##..............................................################...........................##############........................................#####################......................\r\n............###............................................#################...........................##############.....................................#######################.......................\r\n............######.......................................##################............................##############...................................########################........................\r\n............########....................................##################.............................##############...............................###########################.........................\r\n............###########...............................####################.............................##############........................#################################..........................\r\n............###############........................######################..............................#####################################################################............................\r\n............#####################............###########################...............................####################################################################.............................\r\n............###########################################################................................##################################################################...............................\r\n............##########################################################.................................#################################################################................................\r\n............#########################################################..................................###############################################################..................................\r\n............########################################################...................................#############################################################....................................\r\n............######################################################.....................................##########################################################.......................................\r\n............#####################################################......................................########################################################.........................................\r\n..............#################################################........................................####################################################.............................................\r\n.................############################################..........................................################################################.................................................\r\n....................######################################.............................................#########################################........................................................\r\n.........................#############################..................................................................................................................................................\r\n..............................###################.......................................................................................................................................................\r\nadd 50 rows below\r\n%}\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-12T05:01:51.000Z","deleted_by":null,"deleted_at":null,"solvers_count":11,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-11T16:20:17.000Z","updated_at":"2026-03-11T08:39:22.000Z","published_at":"2024-07-12T05:01:52.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 21 maze is a 200x200 matrix with L near the middle,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ B$ L\\\" B$ L# B$ v\\\" B$ v# v# L# B$ v\\\" B$ v# v# L\\\" L# ? B= v# I! Sllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll B. B$ v\\\" B/ v# I% BT I\\\" BD B% v# I% Sl~aF   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, a=\u0026gt;#, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman21 solution was written in ICFP to reduce length versus 40000 U/R/D/L commands, a decent compression.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ Lf B$ B$ vf vf IR Ls Lp ? B= vp IP S3/,6%},!-\\\"$!-!.WV} B. B$ B$ vs vs B% B* I$ vp I~|( BT I\\\" BD B% vp I% SO\u0026gt;LF\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=Xcm3S9VlqqY\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThirteenTeam youtube ICFP2024\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to solve the Lamdaman21 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template. As of 7/11/24 I am unable to expand the ICFP solution.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60593,"title":"ICFP2024 002: Lambdaman 9","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"  in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\r\nB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u003e B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u003e\r\n\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\r\n\r\nAs 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.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 579px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 289.5px; transform-origin: 407px 289.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 339px 8px; transform-origin: 339px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380px 8px; transform-origin: 380px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"  in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 350px 8px; transform-origin: 350px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 287px 8px; transform-origin: 287px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u0026gt; B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u0026gt;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 364px 8px; transform-origin: 364px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAs 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman9(m)\r\n% m is a maze where 2 is cheese to eat, 1 is Lambdaman the token being moved, \r\n% 0 is a wall\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman9 is a string of about 2499 RDLU characters\r\n%Answers may vary if doing rows or columns first\r\n v='R';\r\nend\r\n\r\n%Lambdaman 9 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman9.glx\r\nB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\"\r\n\r\nSolution\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman9.sol.glx\r\nB. S3/,6%},!-\"$!-!.^} B$ B$ L! L\" B$ v! B$ v! B$ v! B$ v! B$ v! v\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u003e B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u003e\r\n\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nvalid=0;\r\nm=ones(50)*2; %Cheese bits are 2.  Walls will be 0 but none in this case.\r\nm(1)=1;  %Lambdaman is 1\r\n\r\nv = Lambdaman9(m);\r\nfprintf('Answer Length: %i\\n',length(v))\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman9 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  c=min(c+1,50);\r\n elseif v(i)=='L' % L\r\n  c=max(c-1,1);\r\n elseif v(i)=='U' % U\r\n  r=max(r-1,1);\r\n elseif v(i)=='D' % D\r\n  r=min(r+1,50);\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nend\r\n%mc\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nL.................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n..................................................\r\n%}\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-09T20:42:07.000Z","deleted_by":null,"deleted_at":null,"solvers_count":8,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T17:08:10.000Z","updated_at":"2025-12-03T18:41:13.000Z","published_at":"2024-07-09T20:42:07.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 9 maze is a 50x50 matrix L at index 1. All points are '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ L+ B. B. SF B$ B$ v+ Sl IR B$ B$ v+ B. S~ B$ B$ v+ Sl IS IR 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\\\"  in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman9 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. S3/,6%},!-\\\"$!-!.^} B$ B$ L! L\\\" B$ v! B$ v! B$ v! B$ v! B$ v! v\\\" L! B. v! v! B. B$ L! B. v! v! SLLLLLLLLLLLLLLLLLLLLLLLLL B. S\u0026gt; B. B$ L! B. v! v! SFFFFFFFFFFFFFFFFFFFFFFFFF S\u0026gt;\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSadly Cody years ago eliminated the ability for creators to evaluate scores based on time, body size, error, or other parameters due to cheaters.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60603,"title":"ICFP2024 003: Lambdaman 5","description":"The ICFP2024 contest was held June 29 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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\nThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\r\nB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  The usage B$ v\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\r\nThe big hint here is that ICFP O is U, \u003e is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\r\n\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nI will be posting the entire ICFP2024 contest challenges and best solutions.\r\n","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 728.767px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 364.383px; transform-origin: 407px 364.383px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 302px 8px; transform-origin: 302px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e was held June 29 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 372.5px 8px; transform-origin: 372.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 186px 8px; transform-origin: 186px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 230.267px; counter-reset: list-item 0; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 115.133px; transform-origin: 391px 115.133px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.....########...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e....#...........\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e...#..######....\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e..#..#......#...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#..#...##...#..\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#..#..#L.#...#.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e.#...#....#...#.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e..#...####...#..\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e...#........#...\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e....########....\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.9333px; counter-reset: none; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10.4667px; text-align: left; transform-origin: 363px 10.4667px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 64px 8px; transform-origin: 64px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 64px 8.5px; transform-origin: 64px 8.5px; \"\u003e................\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 350px 8px; transform-origin: 350px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 375px 8px; transform-origin: 375px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  The usage B$ v\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 377px 8px; transform-origin: 377px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe big hint here is that ICFP O is U, \u0026gt; is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.5px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.75px; text-align: left; transform-origin: 384px 10.75px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; perspective-origin: 0px 8.5px; transform-origin: 0px 8.5px; \"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 235.5px 8px; transform-origin: 235.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eI will be posting the entire ICFP2024 contest challenges and best solutions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 8px; transform-origin: 0px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v = Lambdaman5(m)\r\n% m is a maze where 2 is cheese to eat, 1 is Lambdaman the token being moved, and\r\n% 0 is a wall\r\n%v is path moved using UDLR characters for Up, Down, Left, and Right\r\n%Running into a wall or going off maze reults in no movement\r\n\r\n%A correct answer for Lambdaman5 is a string of about 220 RDLU characters\r\n%Answers may vary wildly\r\n v='RDLLLU';\r\nend\r\n\r\n%Lambdaman 5 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nSlllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\n\r\nSolution\r\nB$ L\" B. S3/,6%},!-\"$!-!.Z} B$ v\" B$ v\" B$ v\" SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO \r\nL! B. B. v! v! v! \r\n\r\nwhich defines the function L\" as triple(x) from B$ L\" and L! B. B. v! v! v!  \r\nThe usage B$ v\" invokes triple(x) \r\nthus the main becomes triple(triple(triple(SFOOLL\u003e\u003eLL\u003eFO\u003e\u003e\u003eFFL\u003e\u003e\u003eFFFFOFOFFOLLLLOFOLO) )) \r\nor 27 repeats of the string.\r\nThe big hint here is that ICFP O is U, \u003e is D, F is L, and L is R when decrypted. \r\nRunning into walls causes no movement and since this is a spiral maze there appears to be \r\na short sequence that spans all the cheesy bits when repeated.  \r\nTo me it was nuts that someone devised this short sequence.\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}\r\n\r\n","test_suite":"%%\r\nvalid=0;\r\n%   # Wall 0   L lambdaman 1,   . Cheese 2,   \r\n%11x16\r\nms=['.....########...'\r\n'....#...........'\r\n'...#..######....'\r\n'..#..#......#...'\r\n'.#..#...##...#..'\r\n'.#..#..#L.#...#.'\r\n'.#...#....#...#.'\r\n'..#...####...#..'\r\n'...#........#...'\r\n'....########....'\r\n'................'];\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\nfor i=1:nr % Display maze numeric\r\n fprintf('%i',m(i,:));fprintf('\\n');\r\nend\r\nfprintf('\\n');\r\n\r\nv = Lambdaman5(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\n[r,c]=find(m==1); % Lambdaman start point\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n%mc\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\n.....########...\r\n....#...........\r\n...#..######....\r\n..#..#......#...\r\n.#..#...##...#..\r\n.#..#..#L.#...#.\r\n.#...#....#...#.\r\n..#...####...#..\r\n...#........#...\r\n....########....\r\n................\r\n%}","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-10T06:39:55.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-10T05:41:35.000Z","updated_at":"2025-12-16T01:40:53.000Z","published_at":"2024-07-10T06:39:55.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e was held June 29 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 5 maze is a 11x16 matrix L near middle. Points are '#' wall and '.' a cheese bit. Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eLambdaman 5 was given as an ICFP encrypted text String: Slllllaaaaaaaalll~llllalllllllllll~lllallaaaaaallll~llallallllllalll~lallalllaalllall~lallallaFlalllal~lalllallllalllal~llalllaaaalllall~lllallllllllalll~llllaaaaaaaallll~llllllllllllllll~\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.....########...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e....#...........\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e...#..######....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e..#..#......#...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#..#...##...#..\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#..#..#L.#...#.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.#...#....#...#.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e..#...####...#..\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e...#........#...\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e....########....\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e................\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman5 solution was written in ICFP to reduce length versus ~150 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ L\\\" B. S3/,6%},!-\\\"$!-!.Z} B$ v\\\" B$ v\\\" B$ v\\\" SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO L! B. B. v! v! v! which defines the function L\\\" as triple(x) from B$ L\\\" and L! B. B. v! v! v!  The usage B$ v\\\" invokes triple(x) thus the main becomes triple(triple(triple(SFOOLL\u0026gt;\u0026gt;LL\u0026gt;FO\u0026gt;\u0026gt;\u0026gt;FFL\u0026gt;\u0026gt;\u0026gt;FFFFOFOFFOLLLLOFOLO) )) or 27 repeats of the string.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe big hint here is that ICFP O is U, \u0026gt; is D, F is L, and L is R when decrypted. Running into walls causes no movement and since this is a spiral maze there appears to be a short sequence that spans all the cheesy bits when repeated.  To me it was nuts that someone devised this short sequence.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI will be posting the entire ICFP2024 contest challenges and best solutions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":60598,"title":"ICFP2024 004: Lambdaman 10","description":"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.\r\nThe ICFP Language is based on Lambda Calculus.\r\nThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \r\nThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\r\nThe puzzle was given in ICFP to produce the maze text string. \r\nB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"   in this language F=\u003eL, l=\u003e., ~=\u003eLineFeed, IR means Integer 49, IS is 50\r\nThe 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.\r\nThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\r\nB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u003e I8\r\nThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\r\nThe ICFP competition is more about manual solving optimizations for each unique problem.\r\n Lambdaman21 was solved by Thirteen Team using tools. ThirteenTeam youtube ICFP2024\r\nThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 544px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 272px; transform-origin: 407px 272px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/task.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP2024 contest\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 300px 8px; transform-origin: 300px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 14.5px 8px; transform-origin: 14.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://icfpcontest2024.github.io/icfp.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eICFP Language\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.5px 8px; transform-origin: 40.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is based on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Lambda_calculus\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eLambda Calculus\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 369.5px 8px; transform-origin: 369.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 357.5px 8px; transform-origin: 357.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 195px 8px; transform-origin: 195px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 383.5px 8px; transform-origin: 383.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 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.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 354px 8px; transform-origin: 354px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 360px 8px; transform-origin: 360px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u0026gt; I8\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 371.5px 8px; transform-origin: 371.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 285.5px 8px; transform-origin: 285.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 100px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 50px; text-align: left; transform-origin: 384px 50px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: middle;width: 100px;height: 100px\" src=\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\" data-image-state=\"image-loaded\" width=\"100\" height=\"100\"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 182.5px 8px; transform-origin: 182.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.youtube.com/watch?v=Xcm3S9VlqqY\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eThirteenTeam youtube ICFP2024\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 384px 8px; transform-origin: 384px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function v=Lambdaman10(m)\r\n%Simple solver going donw/up columns based upon apriori knowledge of wall structure.\r\n%\r\n%m wall-0  L-1  Cheezy-2  Empty-3\r\n v='';\r\n [nr,nc]=size(m);\r\n [tr,tc]=find(m==1);\r\n%Process Lambda10\r\n\r\n%'L..........#..........#..........#..........#.....' top\r\n%'.....#..........#..........#..........#..........#'\r\n%'..........#..........#..........#..........#......'\r\n\r\n%'....#..........#..........#..........#..........#.'  bottom\r\n%'.........#..........#..........#..........#.......'\r\n%'...#..........#..........#..........#..........#..'];\r\n\r\n%Down odd\r\n% Obstacle - go RDDL , special bottom cases \r\n%Up Even\r\n% Obstacle - go LUUR , special top cases\r\n\r\nwhile nnz(m==2) % Any remaining cheezy bits\r\n%Down odd\r\n while tr\u003cnr\r\n  % 'D'\r\n  m(tr,tc)=3;\r\n  if m(tr+1,tc)\u003e0 % 'D'\r\n   tr=tr+1;m(tr,tc)=1;v=[v 'D'];\r\n  else % wall \r\n   if tr==nr-1 %RD\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr+1;m(tr,tc)=1;v=[v 'D'];\r\n   else % RDDL\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tc=tc-1; m(tr,tc)=1;v=[v 'L'];\r\n   end\r\n  end\r\n end % tr\r\n \r\n %tr=nr\r\n if mod(tc,2)==1 % sitting at (nr,odd) \r\n   if m(nr,tc+1)\u003e0 % shift right\r\n    % 'R'\r\n    m(tr,tc)=3;\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   else % madj r is a wall (nr,tc+1)\r\n    %need to go up and right to get to even (nr-1,even)\r\n    % 'UR'\r\n    m(tr,tc)=3;\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n end %mod(tc,2)==1  odd column\r\n\r\n%Up Even\r\n while tr\u003e1  % case tr==2 and tr==1 has a wall?\r\n  % 'U'\r\n  m(tr,tc)=3;\r\n  if m(tr-1,tc)\u003e0 % 'U'\r\n   tr=tr-1;m(tr,tc)=1;v=[v 'U'];\r\n  else % wall\r\n   if tr==2 %RU\r\n    tc=tc+1; m(tr,tc)=3;v=[v 'R'];\r\n    tr=tr-1;m(tr,tc)=1;v=[v 'U'];\r\n   else % LUUR\r\n    tc=tc-1; m(tr,tc)=3;v=[v 'L'];\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tr=tr-1;m(tr,tc)=3;v=[v 'U'];\r\n    tc=tc+1; m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n  end\r\n end % tr \r\n \r\n if nnz(m==2)==0,break;end\r\n \r\n %tr=1\r\n if mod(tc,2)==0 % sitting at (1,even) \r\n   if m(1,tc+1)\u003e0 % shift right\r\n    % 'R'\r\n    m(tr,tc)=3;\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   else % madj r is a wall (nr,tc+1)\r\n    %need to go down and right to get to odd (2,odd)\r\n    % 'DR'\r\n    m(tr,tc)=3;\r\n    tr=tr+1;m(tr,tc)=3;v=[v 'D'];\r\n    tc=tc+1;m(tr,tc)=1;v=[v 'R'];\r\n   end\r\n end %mod(tc,2)==1  odd column\r\nend % while nnz(m==2)\r\n\r\nend % Lambdaman10\r\n\r\n%Lambdaman 10 ICFP dataset and optimal solution\r\n%{\r\nMaze\r\nhttps://github.com/codingteam/icfpc-2024/blob/master/data/lambdaman/lambdaman10.glx\r\nB. SF B$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\" B+ v# I\" I\"\r\n\r\nSolution\r\nB$ B$ L$ B$ v$ v$ L# L\" ? B= v\" Id S3/,6%},!-\"$!-!.VU} B. B$ B$ v# v# B% B* v\" I9 I,2X BT I\" BD B% v\" I% SFOL\u003e I8\r\n\r\n%}\r\n\r\n%ICFP Language\r\n%{\r\nICFP language\r\nAn Interstellar Communication Functional Program (ICFP) consists of a list of space-separated tokens. \r\nA token consists of one or more printable ASCII characters, from ASCII code 33 ('!') \r\nup to and including code 126 ('~'). In other words, there are 94 possible characters, \r\nand a token is a nonempty sequence of such characters.\r\n\r\nThe first character of a token is called the indicator, and determines the type of the token. \r\nThe (possibly empty) remainder of the token is called body. The different token types are \r\nexplained in the next subsections.\r\n\r\nBooleans\r\nindicator = T and an empty body represents the constant true, and indicator = F and an \r\nempty body represents the constant false.\r\n\r\nIntegers\r\nindicator = I, requires a non-empty body.\r\n\r\nThe body is interpreted as a base-94 number, e.g. the digits are the 94 printable ASCII characters\r\n with the exclamation mark representing 0, double quotes 1, etc. \r\nFor example, I/6 represent the number 1337.\r\n\r\nStrings\r\nindicator = S\r\n\r\nThe Cult of the Bound variable seems to use a system similar to ASCII to encode characters, \r\nbut ordered slightly differently. Specifically, ASCII codes 33 to 126 from the body can be \r\ntranslated to human readable text by converting them according to the following order:\r\n\r\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%\u0026'()*+,-./:;\u003c=\u003e?@[\\]^_`|~\u003cspace\u003e\u003cnewline\u003e\r\nHere \u003cspace\u003e denotes a single space character, and \u003cnewline\u003e a single newline character. \r\nFor example, SB%,,/}Q/2,$_ represents the string \"Hello World!\".\r\n\r\nUnary operators\r\nindicator = U, requires a body of exactly 1 character long, and should be followed by an ICFP\r\nwhich can be parsed from the tokens following it.\r\n\r\nCharacter\tMeaning\tExample\r\n-\tInteger negation\tU- I$ -\u003e -3\r\n!\tBoolean not\tU! T -\u003e false\r\n#\tstring-to-int: interpret a string as a base-94 number\tU# S4%34 -\u003e 15818151\r\n$\tint-to-string: inverse of the above\tU$ I4%34 -\u003e test\r\nThe -\u003e symbol in this table should be read as \"will evaluate to\", see Evaluation.\r\n\r\nBinary operators\r\nindicator = B, requires a body of exactly 1 character long, and should be followed by two ICFPs \r\n(let's call them x and y).\r\n\r\nCharacter\tMeaning\tExample\r\n+\tInteger addition\tB+ I# I$ -\u003e 5\r\n-\tInteger subtraction\tB- I$ I# -\u003e 1\r\n*\tInteger multiplication\tB* I$ I# -\u003e 6\r\n/\tInteger division (truncated towards zero)\tB/ U- I( I# -\u003e -3\r\n%\tInteger modulo\tB% U- I( I# -\u003e -1\r\n\u003c\tInteger comparison\tB\u003c I$ I# -\u003e false\r\n\u003e\tInteger comparison\tB\u003e I$ I# -\u003e true\r\n=\tEquality comparison, works for int, bool and string\tB= I$ I# -\u003e false\r\n|\tBoolean or\tB| T F -\u003e true\r\n\u0026\tBoolean and\tB\u0026 T F -\u003e false\r\n.\tString concatenation\tB. S4% S34 -\u003e \"test\"\r\nT\tTake first x chars of string y\tBT I$ S4%34 -\u003e \"tes\"\r\nD\tDrop first x chars of string y\tBD I$ S4%34 -\u003e \"t\"\r\n$\tApply term x to y (see Lambda abstractions)\t\r\nIf\r\nindicator = ? with an empty body, followed by three ICFPs: the first should evaluate to a boolean,\r\nif it's true then the second is evaluated for the result, else the third. For example:\r\n\r\n? B\u003e I# I$ S9%3 S./     evaluates to no.\r\n\r\nLambda abstractions\r\nindicator = L is a lambda abstraction, where the body should be interpreted as a base-94 number \r\nin the same way as integers, which is the variable number, and it takes one ICFP as argument. \r\nindicator = v is a variable, with again a body being the base-94 variable number.\r\n\r\nWhen the first argument of the binary application operator $ evaluates to a lambda abstraction, \r\nthe second argument of the application is assigned to that variable. For example, the ICFP\r\n\r\nB$ B$ L# L$ v# B. SB%,,/ S}Q/2,$_ IK\r\nrepresents the program (e.g. in Haskell-style)\r\n\r\n((\\v2 -\u003e \\v3 -\u003e v2) (\"Hello\" . \" World!\")) 42\r\nwhich would evaluate to the string \"Hello World!\".\r\n\r\nEvaluation\r\nThe most prevalent ICFP messaging software, Macroware Insight, evaluates ICFP messages \r\nusing a call-by-name strategy. This means that the binary application operator is non-strict; \r\nthe second argument is substituted in the place of the binding variable \r\n(using capture-avoiding substitution). If an argument is not used in the body \r\nof the lambda abstraction, such as v3 in the above example, it is never evaluated. \r\nWhen a variable is used several times, the expression is evaluated multiple times.\r\n\r\nFor example, evaluation would take the following steps:\r\n\r\nB$ L# B$ L\" B+ v\" v\" B* I$ I# v8\r\nB$ L\" B+ v\" v\" B* I$ I#\r\nB+ B* I$ I# B* I$ I#\r\nB+ I' B* I$ I#\r\nB+ I' I'\r\nI-\r\nLimits\r\nAs communication with Earth is complicated, the Cult seems to have put some restrictions \r\non their Macroware Insight software. Specifically, message processing is aborted when \r\nexceeding 10_000_000 beta reductions. Built-in operators are strict (except for B$, \r\nof course) and do not count towards the limit of beta reductions. \r\nContestants' messages therefore must stay within these limits.\r\n\r\nFor example, the following term, which evaluates to 16, uses 109 beta reductions during evaluation:\r\n\r\nB$ B$ L\" B$ L# B$ v\" B$ v# v# L# B$ v\" B$ v# v# L\" L# ? B= v# I! I\" B$ L$ B+ B$ v\" v$ B$ v\" v$ B- v# I\" I%\r\nResearchers expect that the limit on the amount beta reductions is the only limit that \r\ncontestants may run into, but there seem to also be some (unknown) limits on memory usage \r\nand total runtime.\r\n\r\nUnknown operators\r\nThe above set of language constructs are all that researchers have discovered, \r\nand it is conjectured that the Cult will never use anything else in their communication \r\ntowards Earth. However, it is unknown whether more language constructs exist.\r\n%}","test_suite":"%%\r\nvalid=0;\r\n% L lambdaman 1,   . Cheese 2,   # Wall 0\r\n\r\nms=['L..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'\r\n'........#..........#..........#..........#........'\r\n'..#..........#..........#..........#..........#...'\r\n'.......#..........#..........#..........#.........'\r\n'.#..........#..........#..........#..........#....'\r\n'......#..........#..........#..........#..........'\r\n'#..........#..........#..........#..........#.....'\r\n'.....#..........#..........#..........#..........#'\r\n'..........#..........#..........#..........#......'\r\n'....#..........#..........#..........#..........#.'\r\n'.........#..........#..........#..........#.......'\r\n'...#..........#..........#..........#..........#..'];\r\n\r\n[nr,nc]=size(ms);\r\nm=ones(nr,nc)*2; %Cheese bits are 2.\r\nm(ms=='#')=0; % Wall\r\nm(ms=='L')=1; % Landaman, start point\r\n\r\nfor i=1:nr % Display maze numeric\r\n fprintf('%i',m(i,:));fprintf('\\n');\r\nend\r\n\r\nv = Lambdaman10(m);\r\nfprintf('Answer Length: %i\\n',length(v));\r\n\r\nmc=m==2; %Create cheese binary matrix for processing path coverage\r\n\r\nr=1;c=1;  % Limit is 50,50 for Lambdaman10 starts at (1,1)\r\nfor i=1:length(v)\r\n if v(i)=='R' % R\r\n  if c+1\u003c=nc\r\n    if m(r,c+1)\u003e0\r\n     c=c+1;\r\n    end\r\n  end\r\n elseif v(i)=='L' % L\r\n  if c-1\u003e=1\r\n    if m(r,c-1)\u003e0\r\n     c=c-1;\r\n    end\r\n  end\r\n elseif v(i)=='U' % U\r\n  if r-1\u003e=1\r\n   if m(r-1,c)\u003e0\r\n     r=r-1;\r\n   end\r\n  end\r\n elseif v(i)=='D' % D\r\n  if r+1\u003c=nr\r\n    if m(r+1,c)\u003e0\r\n     r=r+1;\r\n    end\r\n  end\r\n end\r\n mc(r,c)=0; \r\n if nnz(mc)==0,break;end\r\nend\r\n\r\nif nnz(mc)==0\r\n valid=1;\r\nelse\r\n fprintf('Failed to Clear - remaining cheesy bits\\n');\r\n for i=1:nr % Display maze numeric\r\n  fprintf('%i',mc(i,:));fprintf('\\n');\r\n end\r\nend\r\n\r\nassert(valid)\r\n\r\n%The maze as Text\r\n%{\r\nL..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n........#..........#..........#..........#........\r\n..#..........#..........#..........#..........#...\r\n.......#..........#..........#..........#.........\r\n.#..........#..........#..........#..........#....\r\n......#..........#..........#..........#..........\r\n#..........#..........#..........#..........#.....\r\n.....#..........#..........#..........#..........#\r\n..........#..........#..........#..........#......\r\n....#..........#..........#..........#..........#.\r\n.........#..........#..........#..........#.......\r\n...#..........#..........#..........#..........#..\r\n%}\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3097,"edited_by":3097,"edited_at":"2024-07-11T04:23:05.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2024-07-09T20:47:10.000Z","updated_at":"2024-07-11T04:23:06.000Z","published_at":"2024-07-11T04:23:06.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/task.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP2024 contest\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://icfpcontest2024.github.io/icfp.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eICFP Language\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is based on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Lambda_calculus\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eLambda Calculus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe Lambdaman 10 maze is a 50x50 matrix L at index 1,  '.' a cheese bit, # is Wall. Matrix uses Wall=0,L=1,Cheese=2 \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest goal was to write a minimal size, bytes, expression that moves L, Lambdaman, to eat each cheese bit.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe puzzle was given in ICFP to produce the maze text string. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB. SF B$ B$ L\\\" B$ L# B$ v\\\" B$ v# v# L# B$ v\\\" B$ v# v# L\\\" L# ? B= v# I;Y S B. ? B= B% v# IS I! S~ S B. ? B= B% v# I, I! Sa Sl B$ v\\\" B+ v# I\\\" I\\\"   in this language F=\u0026gt;L, l=\u0026gt;., ~=\u0026gt;LineFeed, IR means Integer 49, IS is 50\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 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.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe contest's best Lambdaman10 solution was written in ICFP to reduce length versus 2500 U/R/D/L commands.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB$ B$ L$ B$ v$ v$ L# L\\\" ? B= v\\\" Id S3/,6%},!-\\\"$!-!.VU} B. B$ B$ v# v# B% B* v\\\" I9 I,2X BT I\\\" BD B% v\\\" I% SFOL\u0026gt; I8\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to return a string of commands [UDLR] with minimal matlab program size that eats all the cheese bits.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe ICFP competition is more about manual solving optimizations for each unique problem.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"100\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"middle\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e Lambdaman21 was solved by Thirteen Team using tools. \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.youtube.com/watch?v=Xcm3S9VlqqY\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThirteenTeam youtube ICFP2024\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis challenge is to solve the Lamdaman10 maze, eat all the cheese by a char path of UDLR, with a program smaller than the template.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.gif\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,R0lGODlhyADIAOetAAAAAA0NDRYWFhwcHCIiIiYmJioqKi4uLjIyMjU1NTg4ODs7Oz09PUBAQEJCQkVFRUdHR0lJSUtLS01NTU9PT1FRUVNTU1VVVVZWVlhYWFpaWlxcXF1dXV9fX2BgYGJiYmNjY2VlZWZmZmhoaGlpaWpqamxsbG1tbW5ubnBwcHFxcXJycnNzc3V1dXZ2dnd3d3h4eHl5eXp6enx8fH19fX9/f4CAgIGBgYKCgoODg4WFhYaGhoeHh4iIiIqKioyMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6ampqenp6ioqKmpqaqqqqurq6ysrK2tra+vr7CwsLGxsbKysrOzs7S0tLW1tba2tri4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2Nra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAADIAMgAAAj+AFsJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWr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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"term":"tag:\"lambda calculus\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"lambda calculus\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"lambda calculus\"","","\"","lambda calculus","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f5e88042318\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f5e88042278\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f5e880419b8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f5e88042598\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f5e880424f8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f5e88042458\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f5e880423b8\u003e":"tag:\"lambda calculus\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f5e880423b8\u003e":"tag:\"lambda calculus\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"lambda calculus\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"lambda calculus\"","","\"","lambda calculus","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f5e88042318\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f5e88042278\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f5e880419b8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f5e88042598\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f5e880424f8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f5e88042458\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f5e880423b8\u003e":"tag:\"lambda calculus\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f5e880423b8\u003e":"tag:\"lambda calculus\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":60591,"difficulty_rating":"easy"},{"id":60608,"difficulty_rating":"easy"},{"id":60593,"difficulty_rating":"easy"},{"id":60603,"difficulty_rating":"easy-medium"},{"id":60598,"difficulty_rating":"easy-medium"}]}}