interpreter : Program × Data → Result specializer : (Program × Data → Result) → Program → (Data → Result) -- Specializer performs currying LOL -- First projection (specializer interpreter my_program) : Data → Result -- We've compiled the program -- Second projection (specializer specializer interpreter) : Program → (Data → Result) -- Now we have a compiler for any program in a language of the `interpreter` -- Third projection (specializer specializer specializer) : (Program × Data → Result) → (Program → (Data → Result)) -- Now we have another currying function, LOL -- Oh no, we actually have a compiler compiler, of course! :D
Спасибо за иллюстрацию, что текст на искусственном языке, но специально подобранном, значительно понятнее текста на естественном языке. Да и короче!
Обсуждают сегодня