monads

Jak zalogować się do Haskell?

Próbuję użyć Hsloggera, aby uzyskać informacje o moim programie. Więc dodaję następujący wiersz do mojej funkcji import Dat ... miem, co z tym zrobić. Czy potrzebuję transformatora monad, aby móc układać Parser monad i IO monad razem? Jak mam to zrobić?

Co dokładnie sprawia, że opcja monada w Scali?

Wiem, czym są monady i jak ich używać. Czego nie rozumiem, to Co czyni, powiedzmy, Option monadą? W Haskell monada Maybe je ... Equals { ... } Nic związanego z monadą. Jeśli stworzę własną klasę w Scali, czy będzie to domyślnie monada? Dlaczego nie?

Jaką przewagę daje nam Monad nad aplikatorem?

Czytałem Ten artykuł , ale nie zrozumiałem ostatniej sekcji. Autor mówi, że Monad daje nam wrażliwość kontekstową, ale możl ... arString) Jest brzydszy na pewno Bez do-składni, ale poza tym nie rozumiem, po co nam Monada. Czy ktoś może mi to wyjaśnić?

Dlaczego nie ma czegoś takiego jak IMonad w upcoming.NET 4, 0

... z tymi wszystkimi nowymi (i nie tak nowymi, jeśli policzymy liczbę) rzeczami związanymi z monadą? interface IMonad<T ... turn/Unit(); } , które pozwoliłyby pisać funkcje działające na dowolnym typie monadycznym. Czy to nie jest takie krytyczne?

Jakie monady można wyrazić jako wolne przez jakiś funktor?

Dokumentacja dla Free says: Wiele monad powszechnych powstaje jako monady wolne, data Empty a, Free Empty jest izom ... nym więcej: wierzę {[6] } jest izomorficzny do Either e. Edit: jakie monady są a nie expressible używając Free i dlaczego?

Funkcja monad join

Podczas gdy monady są reprezentowane w Haskell za pomocą funkcji bind I return, mogą również mieć inną reprezentację za pomocą funkcji join, na przykład omówione tutaj . Wiem, że typ tej funkcji to M (M (X))- > M (X), ale co to właściwie robi?

Używanie programu Reader Monad do iniekcji zależności

Ostatnio widziałem rozmowy Dead-Simple Dependency Injection i Dependency Injection bez gimnastyki o DI z monadami i byłem p ... ykładową implementację z wykorzystaniem reader Monad, ponieważ czuję, że brakuje mi pchnięcia we właściwym kierunku. Dzięki!

Kiedy stosować Haskell monads

Wdrażam kombinatoryczny algorytm optymalizacji w Haskell: Given an initial candidate solution, repeat until stopping criter ... le mam niejasne pojęcie, że monady mają zastosowanie. Jaki jest najlepszy sposób wyrażenia tego rodzaju procedury w Haskell?

Dlaczego interfejs Monad nie może być zadeklarowany w Javie?

Zanim zaczniesz czytać: to pytanie nie dotyczy zrozumienia monad, ale identyfikacji ograniczeń systemu typu Java, który uniem ... ej w wartość wartość, oraz przekształcenie funkcji na wartościach nieskonsolidowanych w funkcję na wartościach wzmocnionych.

Połącz stan z działaniami IO

Załóżmy, że mam monadę stanu, taką jak: data Registers = Reg {...} data ST = ST {registers :: Registers, mem ... :: Int) ... ) st Ponieważ getLine ma znak typu IO, ale to wyrażenie miałoby znak typu Op. W zarysie, jak miałbym to zrobić?

Jakie są możliwości wykorzystania IO w programowaniu funkcjonalnym?

Monady są opisane jako rozwiązanie Haskella do radzenia sobie z IO. Zastanawiałem się, czy są inne sposoby radzenia sobie z IO w czysto funkcjonalnym języku.

Dlaczego w Haskell nie ma transformatora IO?

Każda inna monada pochodzi z wersją transformatorową, a z tego, co wiem, idea transformatora jest ogólnym rozszerzeniem monad ... age dla transformatora ST wspomina o prawdopodobnie powiązanym problemie w swoim opisie, ale nie zawiera żadnych szczegółów.)

Funkcja Haskella typu: IO String - > String

Napisałem kilka kodu w Haskell, aby utworzyć indeks tekstu. Funkcja top wygląda tak: index :: String -> [(String, [Integ ... tring Myślę, że kluczem do sukcesu jest gdzieś pod monadami, ale nie mogłem znaleźć sposobu na rozwiązanie mojego problemu.

Jaki jest przykład Monad, który jest alternatywą, ale nie MonadPlus?

W jego odpowiedź na pytanie " rozróżnienie typów MonadPlus, Alternative, i Monoid?", Edward kmett mówi, że Co więcej, ... onadPlus Prawa ; jestem zadowolony z odpowiedzi, która używa lewego rozkładu lub lewego połowu, chociaż wolałbym te pierwsze.

Jak zrobić ogólną funkcję memoize w Haskell?

Widziałem drugi post o tym, ale czy jest na to czysty sposób w Haskell? Jako druga część, Czy można to również zrobić bez monadycznej funkcji?

Monady w C# - dlaczego implementacje Bind wymagają przekazanej funkcji do zwrócenia monady?

Większość przykładów monad, które widziałem w C#, jest napisanych mniej więcej tak: public static Identity<B> Bind< ... ;, Maybe<T> itp. bez faktycznie zależności od rzeczywistego typu implementacji IValue. Jest brakuje mi czegoś ważnego?

Round-up instancji klasy typu Scalaz dla innych bibliotek

Często zdarza mi się chcieć (a potem zazwyczaj pisać) Scalaz typować instancje klas dla klas w innych bibliotekach Scali lub ... repozytoriów GitHub lub innych zasobów byłby dla mnie przydatny. Wolę Scalaz 7 instancji, ale wezmę wszystko, co będę mógł.

Monoid vs MonadPlus [duplikat]

To pytanie ma już odpowiedź tutaj: dlaczego MonadPlus a nie Monad + Monoid? ... eracją binarną i tożsamością. (Nazwałbym to półgrupą w języku matematycznym.) So jaka jest różnica między Monoid A MonadPlus?

Haskell pre-monadic I / O

Zastanawiam się, jak I / O były robione w Haskell w czasach, gdy IO monad jeszcze nie wynaleziono. Każdy zna przykład. Edit: czy I / O można zrobić bez monady IO w nowoczesnym Haskell? Wolałbym przykład, który działa z nowoczesnym GHC.

Jak działa ArrowLoop? Mfix?

Czuję się teraz całkiem komfortowo z resztą maszyn arrow, ale nie rozumiem, jak działa loop. Wydaje mi się magiczne, a to źle ... ie miało swoją wartość, gotową do zażądania w celu wytworzenia następnego next, a tym samym następnego output. Jak to brzmi?