Может кто-нибудь помочь мне понять следующее определение из бумаги Вадлера под названием «Comprehending Monads»? (Выдержка из раздела 3.2/страница 9, то есть «Строгость Монада» подраздел.)Что означает «⊥» в «Монархии строгости» из статьи П. Вадлера?
Иногда необходимо контролировать порядок вычисления ленивым функциональной программы. Обычно это достигается с помощью вычислимой функции строгая, определяется
строгой ех =, если х ≠ ⊥, то ех еще ⊥.
Оперативно, строгая ех уменьшается на первом снижении х к слабой головной нормальной форме (WHNF), а затем уменьшая применение ех. С другой стороны, это безопасно для снижения х и ех параллельно, но не разрешить доступ к результату до х находится в WHNF.
В статье мы пока не видим использование символа, состоящего из двух перпендикулярных линий (не уверен, что это называется), так что-то появляется из ниоткуда.
Учитывая, что Вадлер продолжает утверждать, что «мы будем использовать [строгие] методы контроля за ленивыми программами», это кажется довольно важной концепцией для понимания.
Обычно это называется дном. – Squidly
Что ваш вопрос имеет отношение к монадам? – leftaroundabout
Это называется дном, или в Haskell, который называется «undefined». Это лишь одна из форм, хотя технически нижняя часть также является не-завершающим вычислением, например 'length [1 ..]' – bheklilr