Zulip Chat Archive
Stream: new members
Topic: Question on Seq
Kevin Cheung (Oct 16 2024 at 15:01):
In the documentation for the class Seq, it is written:
seq : {α β : Type u} → f (α → β) → (Unit → f α) → f βIf
mf : F (α → β)andmx : F α, thenmf <*> mx : F β. In a monad this is the same asdo let f ← mf; x ← mx; pure (f x): it evaluates first the function, then the argument, and applies one to the other.To avoid surprising evaluation semantics,
mxis taken "lazily", using aUnit→ f αfunction.
My question is on the last sentence: What is an example of a "surprising evaluation semantic" that one would like to avoid?
Last updated: May 02 2025 at 03:31 UTC