Zulip Chat Archive
Stream: general
Topic: reading "seasing pointer-based optimizations"
Asei Inoue (Feb 17 2025 at 11:04):
I am about to read a paper titled "Sealing Pointer-Based Optimizations Behind Pure Functions." However, I cannot understand the following introductory passage that I will quote next:
Functional programming languages are particularly well-suited for building automated reasoning
systems for several reasons. First, a logical term is naturally represented by an inductive type,
whereas such terms are notoriously awkward to encode in object-oriented languages. Second,
traversing a term can be implemented generically as a higher-order combinator, and so much boilerplate control-flow code can be avoided. Third, backtracking search is dramatically simplified by
the use of persistent datastructures, since branches can be paused and resumed at will.
I believe I understand the part starting with "First." However, I do not understand the parts beginning with "Second" and "Third." Since no references are provided, I assume these are commonly known facts.
What is this passage trying to say? What should I read to better understand it?
Ruben Van de Velde (Feb 17 2025 at 11:15):
I guess read "higher-order combinator" as "function that takes a function argument", so you can have a "traverse" function that takes a callback function that is called for every node of a graph rather than implementing the graph walk imperatively
Ruben Van de Velde (Feb 17 2025 at 11:15):
Not sure if that helps :)
Asei Inoue (Feb 17 2025 at 11:16):
any reference recommendation?
Chris Wong (Feb 17 2025 at 13:15):
https://en.wikibooks.org/wiki/Haskell/Traversable
Last updated: May 02 2025 at 03:31 UTC