Większość składni Haskell ma piękno czystości. Ale składnia rekordu wygląda brzydko. To niewygodne. Czuje coś w rodzaju mieszanki z C. Wymaga przecinka i nawiasów klamrowych. Haskell ma tabulator, separacja liniowa. Wygląda więc zbyt wyczerpująco, niż początkowo wymaga. Dlaczego jest tak zaprojektowany?
9
Odpowiedzi:
Chociaż nie byłem w komisji projektowej, uważam, że składnia rekordu została ukształtowana tak, aby była spójna ze składnią listy. Moduł w składni eksportu również używa przecinków, jedynym prawdziwym miejscem, w którym używany jest układ, są deklaracje najwyższego poziomu, w których są klauzule i notacja.
Na dodatek, biorąc pod uwagę
pisanie
bez nawiasy klamrowe kolidowałyby z resztą składni i przy użyciu układu, jak
sprawiłoby, że składnia byłaby dość krucha. Dodaj „gdzie” w niewłaściwym miejscu, a kod oznacza coś zupełnie innego.
Jeśli nie jesteś zadowolony ze stanu rekordów w Haskell (i nie byłbyś z tym sam), polecam przyjrzeć się flabels, a nawet wypracować hackery typograficzne, takie jak HList lub rekordy grejpfrutowe (dwa ostatnie nie są dla osób o słabym sercu, ale także niesamowicie potężnych)
fclabels pozwoli ci pisać (yay pointfree)
jak również
na dodatek jest to raison d'etre, które tworzy etykiety:
źródło
setL
oznacza zmienne? Bez IO? Trudno to zrozumieć ...