Які інтуїції підтримують виклик конструктора "Можливо" в Haskell "Просто"?


11

Інтуїція необов'язкового типу типу Maybe Intє те, що або немає Int (таким чином, є Nothingтам), або що є якийсь Int; є щось там.

Для мене є сенс, що ми називаємо конструктор типу для "негативного" випадку Nothing, оскільки це означає саме те - що його там немає Int. Але навіщо вживати слово Просто у випадку, коли наголос робиться на тому, що насправді є ?

Для мене слово "Просто" містить конотацію, що річ, яку вона описує, є меншою, ніж альтернатива; протилежність чомусь насправді там; наприклад,

A: Ти щось робиш сьогодні ввечері?

Б: Ні; Я просто заставлюсь і дивлюсь телевізор.

A: Ви досліджували моторошні привидні звуки навколо вашого будинку?

Б: так, виявляється, це насправді була просто сова.

Зрозуміло, мені не вистачає будь-якої інтуїції, на якій базувався цей вибір імен. Що це? Тому що для мене слово Just означає протилежне тому, як воно вживається у Maybeтипі.


4
У цьому випадку я думаю, що Скала пішов з кращим іменем Some на відміну від None (не кажучи, що це винахід Scala).
Андрес Ф.

3
@AndresF. Принаймні, це стосується ML, з яким Одерський був, напевно, дуже знайомий.
Дерек Елкінс покинув SE

2
@RobertHarvey Якщо Haskeller використовували Maybeяк монаду, вони, швидше за все, використовуватимуть returnі, можливо, щось подібне mzeroзамість Nothing. Якщо Justвикористовується безпосередньо, зазвичай Maybeне використовується в монадійному стилі в той момент.
Дерек Елкінс покинув SE

2
Історичним прецедентом був би такий 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.
Дерек Елкінс покинув SE

3
Вони ще живі. Ви можете надіслати електронною поштою таких людей, як Філ Уодлер та Саймон Пейтон Джонс, і запитати їх. Або спробуйте список розсилки Haskell-Cafe.
Дерек Елкінс покинув SE

Відповіді:


2

Це раніше пояснював Саймон Пейтон Джонс. Це означає, що або Ніщо не може бути значенням, або "просто" одним іншим типом. Є «просто» ще одна річ, яку можна повернути як значення або нічого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.