SORU
13 EKİM 2010, ÇARŞAMBA


Haskell: asansör vs liftİO

Hangi durumlarda liftIO kullanılmalıdır? ErrorT String IO kullanıyorum ErrorT, liftIO o kadar içine IO eylemleri asansör lift fonksiyon çalışır gereksiz görünmektedir.

CEVAP
13 EKİM 2010, ÇARŞAMBA


lift her zaman "" katmanı. önceki asansörleri Eğer ikinci kat gelen asansör ihtiyacınız varsa, lift . lift ve benzeri gerekir.

Diğer taraftan, liftIO Her zaman IO katmanı varsa, her zaman yığının altında olan) asansörler. Eğer monadlar 2'den daha fazla katman varsa, liftIO takdir edecektir.

Aşağıdaki Lambda: bağımsız değişkenin türü karşılaştırın

type T = ReaderT Int (WriterT String IO) Bool

> :t \x -> (lift x :: T)
\x -> (lift x :: T) :: WriterT String IO Bool -> T

> :t \x -> (liftIO x :: T)
\x -> (liftIO x :: T) :: IO Bool -> T

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Justin Case

    Justin Case

    3 EKİM 2011
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012