icfpc2024 solving fill labyrinth piece with pseudo-haskell
HTML-код
- Опубликовано: 25 авг 2024
- this task was small part of icfp 2024 annual contest.
this part of the contest was most visualizable and fprog-related one, so i decided to stop the world for a moment (exit the flow state), and record video of what was happening during the contest.
while there were better winning solutions (not ours) involving simplest programs with properly seeded RNG, the shown solution involves full compiler/decompiler/interpreter toolchain of two languages, all developed during competition (kotlin).
note that UI for both windows was produced with multiple iterations of claude ai sonnet 3.5, so mostly no swing code has been written by hand. This is because writing UIs duruing contest is the most boring (but important) part. Thankfully, in 2024 we're finally freed from this task. This way it was possible to concentrate on the meat of the problems, and in the year 2024 it was really great contest!
I finished in the middle. I never could figure out the B$ L# B$ L1 and B$ B$ lambda abstraction language. Could you please put out a tutorial video on the ICFP2024 Lambda abstraction language. How does Lambdaman 6 text file become a maze, along with 9 and 10. What are the mazes 6,9 , and 10? I found the ICFP description as lacking and requiring prior knowledge of CS to implement. A few worked examples with descriptions would help me very much. the Operators are easy but the L# vs v" parameters to B$ have me dumbfounded.
please install telegram app, register, assign a nickname, and post it here. I'll contact you and answer your questions. Or write other mean to reach you.
What was your final ICFP message? B$ B$ .... Had a small epiphany and have a partial clue as to how Let becomes implemented in ICFP. I want to try to associate your ICFP format to your screens haskell text.
Let f x = ....... In f 3
Is syntax sugar for
(\x -> .... ) 3
If you do create an ICFP language description a starting point may taking the standard Lambda Calculus statetments and showing them in ICFP B$ format. 0 Lf.Lx.x, 1=Lf.Lx.f x, SUCC= Ln.Lf.Lx.f (n f x), Plus = Lm.Ln.Lf.Lx.m f (n f x) which might be B+ v1 v2, pred= Ln.Lf.Lx.n (Lg.Lh.h (g f)) (Lu.x) (Lu.u), True(innput1) Lx.Ly.x, False(input 2) = Lx.Ly.y, AND Lp.Lq.p q p, ifthenelse Lp.La.Lb.p a b which may be ? B(func) I# I$, and finally the combinator Y=Lf.(lx.f(x x))(Lx.f(x x)) making Y g yield g(Y g) to enable recursion. A response in the comments may be sufficient. The posted youtubes and pages from the leaders never cover the ICFP language but that they did spend extensive time creating their evaluators. Thank you.
@@richardzapor4607 making video is big effort, I don't want. Also RUclips comments format is not convenient for conversation on the topic.
@@richardzapor4607 nobody spent extensive time doing the evaluators. I spent little time doing this language, because the icfp language is very basic, and fp concepts are very programmer friendly.