monads

Czym jest monada W FP, w kategoriach kategorycznych?

Za każdym razem, kiedy ktoś obiecuje "wyjaśnić monady", moje zainteresowanie budzi tylko frustracja, kiedy rzekome" Wyjaśnien ... pcja mówi więcej niż sto nieśmiałych przykładów. Haskell byłby dobry jako język do demonstracji, chociaż nie jestem wybredny.

Czy Haskell jest naprawdę czysty (jest każdy język, który zajmuje się wejściem i wyjściem poza systemem)?

Po dotknięciu Monad w odniesieniu do programowania funkcyjnego, czy funkcja ta rzeczywiście czyni język czystym, czy jest to ... ędziecie zadowoleni, wiedząc jednak, że podoba mi się idea niezmienności, która jest o wiele ważniejsza w stawkach czystości.

Kiedy chciałbym użyć darmowego wzoru Monad + Interpreter?

Pracuję nad projektem, który obejmuje między innymi warstwę dostępu do bazy danych. Całkiem normalne, naprawdę. W poprzedni ... interpretera. Lub... Czy rzeczywiście zyskuję coś innego dzięki darmowemu wzorcowi Monad + Interpreter? Jeśli tak, to co?

Wyjaśnienie praw Monad

Z łagodne wprowadzenie do Haskell , istnieją następujące prawa monad. Czy ktoś może intuicyjnie wyjaśnić, co oznaczają? retu ... ormalną w funkcję monadyczną. Nie mam wytłumaczenia dla tego prawa. Mówi to jednak, że monada musi być "prawie asocjacyjna".

Gdzie mogę nauczyć się Haskell advanced? [zamknięte]

W komentarzu do jednej z moich odpowiedzi, więc użytkownik sdcwc zasadniczo wskazał, że następujący kod: comb 0 = [[]] co ... jących Rodzaj replicateM. Chcę nauczyć się myśleć w monadach i efektywnie z nich korzystać, monadyczne "wzory", jeśli wolisz.

Czy działanie jest naprawdę izomorficzne do wolnej monady?

Dowody W ten post na blogu, Tekmo wskazuje, że możemy udowodnić, że ExitSuccess wychodzi, ponieważ (zakładam) jest to jak C ... wiek obsługi to, ponieważ tylko ostatnia Instrukcja Return może zwracać wartości. Czy dotyczy to również darmowych monad?

Dlaczego warto być superklasą Monad?

Podane: Applicative m, Monad m => mf :: m (a -> b), ma :: m a [[31]}wydaje się być uważane za prawo, które: mf &l ... ch to? Uwaga: ważna edycja w celu wyjaśnienia treści pytania. Odpowiedź wysłana przez @ duplode cytuje wcześniejszą wersję.

Prosty przykład pokazujący, że IO nie spełnia praw monad?

Widziałem, że IO nie spełnia praw monad, ale nie znalazłem prostego przykładu na to wskazującego. Ktoś zna przykład? Dzięki. ... d pokazanie, że IO nie spełnia praw monad, bez użycia seq? (A może dowód, że IO spełnia prawa, Jeśli seq nie jest dozwolone?)

F#: czy istnieje sposób na rozszerzenie listy słów kluczowych monad?

Wewnątrz F# monad, jeśli powiesz let!, kompilator tłumaczy to na Bind członka zdefiniowanego w monad builder. Teraz widzę, ż ... stylu: FooMonadBuilder() { bar } I jakoś powiedzieć kompilatorowi F#, że bar mapuje do metody FooMonadBuilder.Bar()?

kontynuacja stylu przechodzenia vs monady

Jakie są różnice między kontynuacją stylu przejścia (cps) i monady.

Czy ktoś kiedykolwiek spotkał transformatora Monad w dziczy?

W moim obszarze działalności-back office IT dla instytucji finansowej - bardzo często komponent oprogramowania przenosi globa ... nawiam się: czy transformatory monad są najlepszą praktyką w radzeniu sobie z tymi typowymi zadaniami wymienionymi powyżej?

Konstrukcje obliczeniowe (monady, strzałki itp.)

Zainteresowałem się raczej sposobem modelowania obliczeń w Haskell. Niektóre źródła opisywały monady jako "composable computa ... we", ale naprawdę jestem szukam czegoś, na co jeszcze się nie natknąłem. Obejmuje to funktory aplikacyjne, monady i strzałki.

Interfejs Monad w C++

Obecnie uczę się trochę Haskella i zacząłem rozgryzać, jak działają monady. Ponieważ normalnie koduję C++ i myślę, że wzorzec ... ję foo na typie boxed. Przepraszam, że mam problem z formułowaniem myśli po angielsku, ponieważ nie jestem native speakerem.

Dlaczego mamy map, fmap i liftM?

map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Dlaczego mamy trzy różne funkcje, które zasadniczo robią to samo?

Kiedy można używać IORef?

Jedna rzecz, która zawsze mnie myli, to czy to dobry czas, aby użyć IORef. Czy istnieją jakieś wytyczne, których należy przestrzegać przy podejmowaniu decyzji o użyciu IORef do zadania? Kiedy jest dobry czas, aby użyć Monad Stan nad IORef?

Jakie są przykłady motywujące dla Cofree CoMonad w Haskell?

Bawiłem się z Cofree, i nie mogę tego zrobić. Na przykład, chcę grać z Cofree [] Num w ghci i nie mogę uzyskać żadnych cieka ... < []), (3 :< [])] > extract b 1 > unwrap b [2 :< [],3 :< []] > map extract $ unwrap b [2,3]

Jak używać ( - > ) instancji Monad i zamieszania o ( - >)

W różnych pytaniach znalazłem wskazówki w komentarzach dotyczące używania instancji (->) Monad np. do realizacji stylu bez ... e, wiele hitów, jak możesz sobie wyobrazić ... ponieważ prawie każde pytanie o Haskell wiąże się gdzieś (->) lub "Monada".

Biaplikacja i Bimonad?

Data.Bifunctor Haskella to w zasadzie: class Bifunctor f where bimap :: (a -> c) -> (b -> d) -> f a b -> ... pe ...IMO też by się przydało. Czy jest za mało pasujących typów? A może coś, co dotyczy mojego kodu, jest głęboko błędne?

Czy ta właściwość funktora jest silniejsza niż monada?

Zastanawiając się, jak uogólnić monady, wymyśliłem następującą właściwość funktora F: inject :: (a -> F b) -> F(a -&g ... ku", czy to by się przydało? Na przykład możemy wymagać, aby R (F t) był izomorficzny z F (R t) w jednym lub obu kierunkach.

W clojure, kiedy powinniśmy użyć monady zamiast makra i vice-versa?

Jest zbyt wiele tutoriali o monadach, które mówią... "Patrz! oto przypadek, w którym możemy użyć monady " lub "po to jest mon ... liotek Clojure DSL (np. czkawka i korma) używają defmacro i działa świetnie. a po co nam monady w clojure skoro mamy makra?