----------------------------------------------
Where we would write `true 1 2` in our pure lambda calculus and expect
----------------------------------------------
Where we would write `true 1 2` in our pure lambda calculus and expect
After we've given our `f` one argument, it returns a function that is
still waiting for another argument.
After we've given our `f` one argument, it returns a function that is
still waiting for another argument.
functor. But remember that `omega` is a function too, so we can
reverse the order of the arguments:
functor. But remember that `omega` is a function too, so we can
reverse the order of the arguments:
So the integer division operation presupposes that its second argument
(the divisor) is not zero, upon pain of presupposition failure.
So the integer division operation presupposes that its second argument
(the divisor) is not zero, upon pain of presupposition failure.
# 12/0;;
Exception: Division_by_zero.
So we want to explicitly allow for the possibility that
division will return something other than a number.
# 12/0;;
Exception: Division_by_zero.
So we want to explicitly allow for the possibility that
division will return something other than a number.
Beautiful, just what we need: now we can try to divide by anything we
want, without fear that we're going to trigger any system errors.
Beautiful, just what we need: now we can try to divide by anything we
want, without fear that we're going to trigger any system errors.
doesn't trigger any presupposition of its own, so it is a shame that
it needs to be adjusted because someone else might make trouble.
doesn't trigger any presupposition of its own, so it is a shame that
it needs to be adjusted because someone else might make trouble.
Haskell, etc., is to define a `bind` operator (the name `bind` is not
well chosen to resonate with linguists, but what can you do):
Haskell, etc., is to define a `bind` operator (the name `bind` is not
well chosen to resonate with linguists, but what can you do):