Moje rozumienie słownictwa w odniesieniu do programowania i rodzaju słownictwa w ogólności jest czymś, co nadaje niektórym obiektom właściwości o dobrze zdefiniowanym znaczeniu.
Oto kilka przykładów w Haskell:
Rozważmy Optional
/Maybe
rodzaj i czystą funkcję, która pobiera odpowiedzi HTTP serwera WWW i pobiera kod odpowiadać za.
getCode :: String -> Int
Załóżmy teraz, że do czasu uruchomienia tej funkcji nie wiemy, czy odpowiedź się powiodła - kod może nie być obecny. Jak reprezentujemy przypadek, gdy brakuje kodu? Możemy przypisać jakąś wartość -1
sztucznego lub 0
czy możemy zmienić cały rodzaj funkcji to:
getCode :: String -> Maybe Int
Ponadto Maybe
tworzy Monad
, Functor
, Applicative
, Foldable
i kilka innych typeclasses w Haskell. Każda czcionka dodaje dodatkowe możliwości manipulowania wartością, przy jednoczesnym poszanowaniu jej obecności/nieobecności.
Product
/Sum
rodzaj w Haskell są reprezentowane jako pary i Either a b
. Ponownie - zdefiniowanie czegoś przez Product
lub Sum
dodaje dobrze zdefiniowane znaczenie Product a b
- obie wartości muszą być obecne, Sum a b
- jedna wartość musi być obecna i dodaje kilka praw za darmo.
Czy możesz podać linki/cytaty dla terminu "typ słownictwa" używanego w kontekście? Nigdy wcześniej tego nie widziałem i jestem ciekawy, czy pomogłoby to w lepszym przygotowaniu odpowiedzi. Są to głównie [typy danych algebraicznych] (https://en.wikipedia.org/wiki/Algebraic_data_type). –
Jak powiedział Jon, gdzie widziałeś używany typ słownictwa w odniesieniu do tych terminów? Nie jest to coś, z czym się zetknąłem, nawet po przeprowadzeniu wyszukiwania w Internecie pod tym numerem: – Dijkgraaf
pokaż nam referencje, ale myślę, że oznacza to, że istnieją różne rodzaje słowników odnoszących się do określonego typu! –