Jaki jest postęp w zapisach Haskell?


18

Ostatnio ponownie natknąłem się na kwestie związane z danymi Haskella, w szczególności na wyjątkowość nazw pól. (To ból...)

Przeczytałem już Propozycję rekordów w Haskell od SPJ i Grega Morrisetta, ale jej ostatnia aktualizacja miała miejsce w 2003 roku.
Kolejny artykuł zatytułowany Lightweight Extensible Records dla Haskell od SPJ i Mark Jones jest jeszcze starszy: pochodzi z warsztatu Haskell w 1999 roku.

Teraz zastanawiam się, czy proces wydawania Haskellowi nowych rekordów poczynił jakieś postępy.
Czy ktoś coś o tym wie, czy ktoś może skierować mnie do dalszej lektury?


Jestem również świadomy Records in Haskell, ale nie pokazuje dyskusji na temat różnych podejść.
mmh

3
Wszyscy zgadzają się, że obecne zapisy są złe, nikt nie zgadza się, co dokładnie zrobić. Innymi słowy, biznes jak zwykle. Jeśli chcesz dalej czytać, z pewnością nie brakuje niekończącej się debaty na ten temat, ale nie mam teraz czasu, aby wykopać linki ...
CA McCann

Możesz mieć więcej szczęścia pytając na listach mailowych.
Rufflewind

Odpowiedzi:


2

Moje dwa grosze.

Wierzcie lub nie, ale Haskell jest zbyt często używany, aby umożliwić przełomową zmianę w istniejącym oprogramowaniu. I trudno jest dodawać rekordy bez łamania ważnej części języka.

AKTUALIZACJA: BTW, myślę, że rekordy to dobra nowa funkcja. Najbardziej podoba mi się to, że nazwy członków nie zanieczyszczają globalnej przestrzeni nazw.


Czy możesz wyjaśnić, co zostałoby złamane, dodając rekordy? Czy każda popularna propozycja wymaga zepsucia czegoś?

Operator punktowy (komponuj) będzie używany w większości propozycji, więc: a.bbędzie inny
Zhen

3
Innym problemem jest to, że jeśli dodasz nowy system nagrywania, możesz pozbyć się bieżącego, co byłoby przełomową zmianą, lub mieć dwa systemy zapisu jednocześnie, co byłoby bałaganem. Myślę, że a.bproblem jest mniej ważny, ponieważ A.bjuż oznacza coś innego niż A . b(dzięki systemowi modułowemu). Pewnie, że to przełomowa zmiana, ale nie jest szczególnie zła.
Tikhon Jelvis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.