Haskell Programming From First Principles'dan Monad Transformers bölümündeki alıştırmalardan biriyle sorun yaşıyorum. Özellikle, (const (Right (Just 1)))
benzer ve şu bitirmek istenir bir yapıya verilir: "o iş yapmak"İç içe bir türü bir monad trafo kümesine dönüştürme
import Control.Monad.Trans.Except
import Control.Monad.Trans.Maybe
import Control.Monad.Trans.Reader
embedded :: MaybeT (ExceptT String (ReaderT() IO)) Int
embedded = ??? (const (Right (Just 1)))
Bu talimatlar sadece karşı olmasına rağmen biz, iç içe yapısını değiştirmek anlamına gelir varsayalım
Sıkıştığımdan önce birkaç yoldan geçtim. Şimdiye kadar, topladığımdan, monad transformatörleri en sık olarak lift
s ve do
s - SO & As, Diehl summarizes pretty well here'un bir birleşimi ile oluşturulur.
transformers
Kitaplıklarındaki map<Monad>T
arasındaki çeşitli ilginç/eğlenceli sonuçlara ulaşmak için çalışıyordum ancak özgün sorunu nasıl çözeceğimizi bulamıyorum. Herhangi bir ipucu takdir edilecektir - ancak, bir çözüm gönderirseniz, please use the spoiler markup (Puzzling'in dışında herhangi bir yerde kullanılmamış olmasına rağmen).
Gah - ve öyle olduğunu düşündüğüm kadar basit. İpuçları için teşekkürler! – stites
@stites, sorun değil! – dfeuer