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

  • bobinire

    bobinire

    24 EYLÜL 2006
  • Garrett Müller

    Garrett Mül

    26 HAZİRAN 2009
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007