SORU
19 Aralık 2009, CUMARTESİ


Ne zaman bir İORef kullanmak için TAMAM mı?

Bana her zaman karışık olan bir şey ya da iyi bir zaman olup olmadığını bir İORef kullanmaktır. Veya bir görev için bir İORef kullanılıp kullanılmayacağını karar verirken uyulması gereken kurallar vardır? Ne zaman bir İORef üzerinde Devlet monad kullanmak için iyi bir zaman mı?

CEVAP
19 Aralık 2009, CUMARTESİ


Ve göreceli ST hem üretmek `yekpare birimler olarak çalıştırmak olabilir hesaplamaları durum. devlet Bunlar temelde bir sonucu üretmek için gerekli olan ara veri, değişken, devletin tedavi, ama, kendi başına, programın geri kalanı için ilgi çekici olmalıdır.

Diğer taraftan, ne bir koyar içinde bir İORef değil bir `hesaplama' Çalıştır -- sadece bir kutu tutan basit bir değer kullanılabilir IO içinde oldukça keyfi bir yolu. Bu kutu veri yapıları içine koymak olabilir, (IO bölümü) programı çevresinde, onun içeriği uygunsa, işlev vb kapalı sona her yerini. Aslında, oldukça çok dağınık doğa değişkenler ve işaretçiler dilleri gibi C olabilir modellenmiş ile İORefs sağlayan büyük bir yardım için herhangi bir uzman programcı C isteyen korumak, onun itibarını olmak mümkün yaz C kodu ne olursa olsun dil... ... sorun kesinlikle kullanılması ile bakım.

Yine de, zaman zamanson derecehantal, yoksa düpedüz imkansız, devletin bazı parçalar sadece etrafında geçirilmelidir kod -- tek bir blok içinde bir değişken durumu bir parça ile tüm etkileşimleri ayırmak için, içeri veri yapıları vb. Bu gibi durumlarda kutu yaklaşımı tek seçenek olabilir. chapter introducing mutable state Kendiniz Yazın 48 Saat öğretici bir Düzeni (bu arada tavsiye) bir örnek sağlar. (Düzeni bir tercüman belirli bir tasarım modeli Şeması ortamlar için Devlet veya ST aksine İORefs,, kullanmak için en uygun neden güzel bir tartışma için bağlantıyı bakın.)

Kısacası, bu ortamlarda ihtiyaç iç içe keyfi yollar, muhafaza arasında örneklerini kullanıcı etkileşim (a (define x 1) yazılan en Düzeni ÇOĞALTMA gerekir muhtemelen sonuç kullanıcı olmak mümkün daha sonra yazın x ve geri 1 değeri), koy içine nesne modelleme Düzeni fonksiyonları (beri Düzeni işlevlerini kapatın üzerine ortamlar onlar yarattı) vb.

Özetlemek gerekirse, eğer bir görev hiç de bunun için daha uygun gibi, Devletin en temiz çözüm sunma eğilimi içinde olacağını söyleyebilirim. Eğer devletin birden fazla ayrı parçalar gerekiyorsa, belki de ST yardımcı olabilir. Eğer, ancak, durum bilgisi olan hesaplama hantal ya da imkansız kilitleyin kendi parça kodu, devlet ihtiyaçları için kalıcı bir değiştirilebilir form için büyük bir kısmı hayatını karmaşık bir program vb., sonra İORefs sadece uygun bir şey olabilir.

Sonra tekrar, eğer biri etrafında geçti ve IO kod tarafından kontrollü şekilde etkileşim olabilir kesilebilir devlet tür ihtiyacı varsa, neden STM ve TVars bakın bir de! Eşzamanlılık varlığında çok daha güzel, çözmek için daha çok aslındabazıeşzamanlılık ile ilgili görevleri aslında basit. Bu ayrıntılı için teşvik karşı. bu yüzden çok soru ile ilgili değil. :-)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011