Почему в Haskell нет символов (а ля рубин) / атомов (а ля эрланг)?

Два языка, в которых я использовал символы, - это Ruby и Erlang, и я всегда находил их чрезвычайно полезными.

В Haskell действительно есть алгебраические типы данных, но я все еще думаю, символы были бы очень удобны. Сразу приходит в голову следующий вариант использования: поскольку символы изоморфны целым числам, вы можете использовать их там, где вы использовали бы целочисленный или строковый «первичный ключ».

Синтаксический сахар для атомов может быть второстепенным -: something или это атом. Все атомы являются экземплярами типа под названием Atom, который является производным от Show и Eq. Затем вы можете использовать его для более описательных кодов ошибок, например

type ErrorCode = Atom
type Message = String
data Error = Error ErrorCode Message
loginError = Error :redirect "Please login first"

В этом случае: перенаправление более эффективно, чем использование строки («перенаправление»), и его легче понять, чем целое число (404).

Преимущество может быть кажутся второстепенными, но я считаю, что стоит добавить атомы в качестве языковой особенности (или, по крайней мере, расширения GHC).

Так почему же символы не были добавлены в язык? Или я неправильно думаю об этом?

16
задан Anupam Jain 30 May 2011 в 03:56
поделиться