Próbuję lepiej poznać program Haskell, opracowując usługi internetowe.Haskell Webserver: utrzymywanie stanu aplikacji
Załóżmy, że tworzę serwer WWW i chcę zachować stały stan między żądaniami; licznik, na przykład. Jaki jest sposób działania Haskell?
Natknąłem się na to discussion w mojej wyszukiwarce Google. Proponowane rozwiązanie wygląda na dobry przykład tego, czego nie należy robić.
Jednym z pomysłów było to, że miałem program obsługi żądania podjęcia w MVar:
requestHandler :: MVar State -> IO (Maybe Response)
Po rejestracji programu obsługi, może to być curry z MVar utworzony w głównym.
Musi istnieć lepszy sposób. Nie mogę przestać myśleć, że podchodzę do tego problemu w sposób niefunkcjonalny.
Dzięki!
Dlaczego staramy się nieść stan trwały na samym serwerze? Wydaje mi się, że Haskell pasowałby znacznie lepiej dzięki RESTful design. –
Co jest "niefunkcjonalne" w tym podejściu? Masz jakiś stan, który musisz udostępnić, więc zawijasz go i przekazujesz referencję. Wydaje mi się to całkiem proste. – sclv
sclv: Zastanawiam się, czy było więcej podejścia do FRP. – David