Aynı akışa ve monoya sahip, ancak farklı kullanıcı durumu ve sonucu olan iki ParsecT kodunu birleştirmenin kolay bir yolunu arıyorum. Esasen böyle bir fonksiyon güzel olurdu:Parsec kullanıcı durumunun türünü değiştirmek için kolay bir yol?
withUserState :: u -> ParsecT s u m a -> ParsecT s v m a
şey kullanıcı durumu bazı durumlarda gerçekten yararlı olduğunu, olduğunu ama farklı zamanlarda farklı durumları ihtiyaç ve yapmak istemiyorum durumları daha büyük yazar. Bunu yapmak için bir şekilde durumu değiştirmem gerekiyor mu, veya şu anda bulamadığım bir işlev var mı?
Düzenleme: alternatif >>=
operatör
ParsecT s u m a -> (a -> ParsecT s u m b) -> ParsecT s u m b
ve (<*>)
türü vardır gibi bunu yapamaz şey
changeUserState :: (u -> v) -> ParsecT s u m a -> ParsecT s v m a
Wow - bu tam olarak ihtiyacım olan şey gibi görünüyor. Ayrıca: bu mümkün olduğunu bilmek güzel :) –