9 ms·
What is this linear-logic thing that does what monads do? I haven't yet grokked linear-logic (apart from the advert, that you might want to use it to reason abo
by a-saleh 8y ago
What is this linear-logic thing that does what monads do? I haven't yet grokked linear-logic (apart from the advert, that you might want to use it to reason about resource constraints), so I would like to read about this :)
- drb91 8y agoI think the commenter is referring to the process of declaring an order for executing a compute graph. With CSP languages this is established by the order in which the statements appear and reference each other, and computation is explicit: all previous statements in a given process have finished executing at any given point. This is in contrast to Haskell that uses monads to declare the computation graph (well, functions, but monads are under discussion here). In this world, data is computed lazily as needed. The questions you ask about the code center around functions and their dependencies, not necessarily computation order. A task that is trivial to express with on paradigm might be non-trivial to express on the other: haskell is excellent about expressing lazy computation and side effects, whereas a CSP language will offer easy reasoning about the specific and correct order of execution. Note I am not a PL expert, just an enthusiast. My diction may be off for the domain.
- alipang 8y agoAn introduction was posted here recently - which may be good, depending on how comfortable you are with logic in general. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.673.1176&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.673...
- fanf2 8y agoYou might like to look at Clean (terrible name) which is roughly as old as Haskell and in a similar style, but instead of Monads it uses linear types to enforce the order of IO - https://clean.cs.ru.nl/Clean https://clean.cs.ru.nl/Clean