Интуиция необязательного типа, подобного этому, Maybe Int
заключается в том, что либо нет Int (то есть он Nothing
есть), либо существует некоторое Int; там что-то есть
Для меня имеет смысл, что мы вызываем конструктор типов для «отрицательного» случая Nothing
, поскольку это означает именно то, что там его нет Int
. Но зачем использовать слово « Просто» в том случае, когда акцент делается на том, что на самом деле есть ?
Для меня слово «просто» несет в себе смысл того, что то, что оно описывает, меньше альтернативы; противоположность чего-то на самом деле существующего там; например,
A: Вы делаете что-нибудь сегодня вечером?
Б: Нет; Я просто останусь и посмотрю телевизор.
A: Вы исследовали жуткие призрачные звуки вокруг вашего дома?
Б: Да, оказывается, это была просто сова.
Очевидно, мне не хватает интуиции, на которой был основан этот выбор имен. Что это такое? Потому что для меня слово Just означает противоположность тому, как оно используется в Maybe
типе.
Maybe
в качестве монады, они, вероятно, использовали бы return
и, вероятно, что-то вроде mzero
вместо Nothing
. Когда Just
используется напрямую, обычно Maybe
не используется в монадическом стиле в этот момент.
Option
типом. Дизайнеры Haskell, вероятно, сочли, что foo x = Just x
«читают» лучше, чем foo x = Some x
. Точно так же определение data Maybe a = Just a | Nothing
читается очень хорошо, как « Maybe a
есть Just a
или есть Nothing
». Some
там неплохо читает, но None
не для data Option a = Some a | None
.