Почему тип опции Scala не называется Maybe, как в Haskell? [закрыто]

13

Почему тип опции Scala не называется Maybe, как в Haskell?

Может быть, для меня это гораздо более "семантический смысл", но, возможно, у Варианта другое поведение, о котором я не знаю.

Есть ли какая-то особая причина, почему Option в Scala не назывался Maybe?

фн
источник

Ответы:

23

Scala также вдохновлен Ocaml, который использует Option .

Параметры являются стандартным типом Ocaml, который может быть None(не определен) или Some xгде x может иметь любое значение. Параметры широко используются в Ocaml для представления неопределенных значений (немного похоже на NULL в C, но безопасным для типов и памяти) ...

Я думаю, что выбранное имя - дело вкуса.

Mik378
источник
8
F # тоже. Страница в Википедии - en.wikipedia.org/wiki/Option_type . Кажется, это более стандартное имя, чемMaybe
KChaloux
2
Ocaml получает имя от SML. Беглым взглядом на «Следующие 700 языков программирования» Ландина я не заметил тип параметра, поэтому источником названия может быть SML.
Питер Тейлор
1
Аргумент в пользу того Option, что это optionalзначение (либо вы его получаете, либо нет). Maybeподразумевает некоторую степень неопределенности со стороны программиста. Может быть, есть значение? Я не знаю .. Должен ли я получить значение? Формулировка optional valueзвучит более намеренно, на мой взгляд.
Йохем
6

Лучший вопрос здесь - почему вызывается тип опции Haskell Maybe. Тип опции ML, вероятно, является дедушкой всех типов опций, и он называется option.

В любом случае, это терминологический вопрос, поэтому на него не будет принципиального ответа. Людям, которые выбрали имя в Хаскеле, понравилось больше, вот и все.

sacundim
источник
2
Что побудило вас повторить информацию в новом ответе, которая уже хорошо отражена в принятом ответе и его комментариях?
Роберт Харви
4
@RobertHarvey ML, установив прецедент, является новой информацией, реальная проблема заключается в том, что ответ предполагает даже это.
Джечлин
OK. У вас есть ссылка или что-то большее, чем просто мнение? Потому что мнения лучше представить в виде комментариев, а не ответов. Особенно твой второй абзац.
Роберт Харви
2
Отсроченный Вариант: Акт выбора; выбор. Отсроченный Может быть, возможно; Неопределенность; Неопределенный ответ. Для меня достаточно сказать «Может быть, это гораздо лучшее имя с чисто лингвистической точки зрения». «Option» подразумевает, что существует (несколько) вариантов, в то время как монадическое имя «Maybe» гораздо более важно: одно или ничего. Но да, ML (и, следовательно, Option) появился первым, так что это может быть причиной плохого именования (и см. Комментарий Питера Тейлора к правильному ответу выше - он ссылается на ML).
фн
@fnl Смотрите мой комментарий на другой ответ; Я думаю, что есть разумное обоснование, которое optionявляется аббревиатурой optional. В этом случае (множественный) выбор сокращается до двух: либо он есть, либо его нет.
Йохем