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

  • Ludique

    Ludique

    21 NİSAN 2009
  • Sam Kear

    Sam Kear

    14 Temmuz 2007
  • Techmoan

    Techmoan

    31 Mayıs 2009