algebraic-data-types

Nadużywanie algebry algebraicznych typów danych-dlaczego to działa?

Wyrażenie "algebraiczne" dla algebraicznych typów danych wygląda bardzo sugestywnie dla kogoś z doświadczeniem w matematyce. ... wymagają reprezentacji szeregów potęgowych? Jeśli można zdefiniować klasę funkcji, to czy skład funkcji ma jakieś znaczenie?

Algebraiczne typy danych Haskella

Staram się w pełni zrozumieć wszystkie koncepcje Haskella. W jaki sposób algebraiczne typy danych są podobne do typów genery ... ebraicznego? Znam algebrę uniwersalną i jej pierścienie i pola, ale mam tylko niejasne pojęcie, jak działają typy Haskella.

Jak przedstawić wykres w Haskell?

Łatwo jest reprezentować drzewo lub listę w haskell za pomocą algebraicznych typów danych. Ale jak ty byś to zrobił typografi ... isty i drzewa były samooceną na poziomie typu, ale wykresy są samooceną na poziomie wartości. Więc o co tak naprawdę chodzi?

Pamięć typów danych Haskell

Jak mogę znaleźć rzeczywistą ilość pamięci wymaganą do przechowywania wartości jakiegoś typu danych w Haskell (głównie z GHC) ... m opcję :set +s w GHCi, aby zobaczyć statystyki pamięci, ale nie jest jasne, jak oszacować ślad pamięci pojedynczej wartości.

Czym są struktury danych "sumy i produkty"?

A Ostatni post na blogu Williama Cooka wspomina: Kluczowe jest to, że struktury w Ensō są postrzegane całościowo jako w ... b tradycyjne struktury danych sum i produktów. Jakie są tradycyjne struktury danych sum i produktów, do których się odnosi?

Jak dekodować ADT za pomocą circe bez rozróżniania obiektów

Załóżmy, że mam taki ADT: sealed trait Event case class Foo(i: Int) extends Event case class Bar(s: String) extends Event ... dekoderów od podstaw)? (to pytanie pojawia się dość często-patrz np. ta dyskusja z Igorem Mazorem na Gitterze dziś rano.)

Czy istnieje Haskellowy odpowiednik klas abstrakcyjnych OOP, wykorzystujący algebraiczne typy danych lub polimorfizm?

W Haskell, czy możliwe jest napisanie funkcji z podpisem, która może akceptować dwa różne (choć podobne) typy danych i działa ... estem pewien, jak go zdefiniować, aby mógł przechowywać jeden lub inny typ, a także jak go używam w moich własnych funkcjach.

Różnicowanie Struktury Danych, Budowanie Intuicji

Zgodnie z niniejszy artykuł różnicowanie działa na strukturach danych. Zgodnie z ta odpowiedź : Różnicowanie, pochodn ... est dla mnie trochę zbyt skomplikowany aby uzyskać intuicję. Co to oznacza w praktyce? Konkretny przykład byłby fantastyczny.

Dlaczego używamy fałd do kodowania typów danych jako funkcji?

A dokładniej, dlaczego używamy foldr do kodowania list i iteracji do kodowania liczb? Przepraszam za długi wstęp, ale napraw ... na bezpośrednie wykorzystanie rekurencyjnych algebraicznych typów danych? Czy ma to związek z algorytmem wnioskowania typu?