Большая часть синтаксиса Haskell имеет красоту чистоты. Но синтаксис записи выглядит безобразно. Это неудобно. Чувствуется какая-то смесь с С. Требуется запятая и фигурные скобки. В Haskell есть вкладка, разделение строк. Так что это выглядит слишком многословно, чем изначально требуется. Почему он разработан таким образом?
9
Ответы:
Хотя я не был в комитете по дизайну, я считаю, что синтаксис записей был сформирован так, чтобы соответствовать синтаксису списка. Синтаксис экспорта модуля также использует запятые, единственное реальное место, где используется компоновка, - это объявления верхнего уровня, где используются предложения и нотации.
Кроме того, учитывая
письмо
без фигурных скобок будет конфликтовать с остальной частью синтаксиса, и используя макет, как
сделал бы синтаксис довольно хрупким. Добавьте «где» в неправильном месте, и ваш код означает что-то совершенно другое.
Если вас не устраивает состояние записей в Haskell (и вы не останетесь наедине с этим), я рекомендую вам взглянуть на fclabels или даже тщательно продумать хакерство типов классов, таких как HList или grapefruit -records (последние два не являются для слабонервных, но тоже безумно мощных)
fclabels позволит вам написать (yay pointfree)
а также
В довершение всего, это реальный смысл, который составляет лейблы:
источник
setL
изменчивый ?? Без IO? Это трудно понять ...