Nedir (fonksiyonel) reaktif programlama?
reactive programming Wikipedia makale okudum. Ayrıca functional reactive programming küçük yazı okudum. Açıklamaları oldukça soyut.
Fonksiyonel reaktif programlama (CTP) pratikte ne anlama geliyor? Reaktif programlama (non-reaktif programlama karşıt?) oluşur? Geçmişimi zorunlu/OO dillerde, bu paradigma ile ilgili bir açıklama duyacağız.
CEVAP
Eğer FRP için bir fikir almak isterseniz, eski resimler hareketli olan 1998, Fran tutorial başlayabilirsin. Kağıtları için Functional Reactive Animation ile başlar ve benim ana sayfasında yayınlar ve Bağlantı Haskell wiki FRP link bağlantıları takip edin.
Şahsen, CTP ne hakkında düşünmek istiyorumdemektireklenmemiş olabilir nasıl hitap önce. (A girmeden kod sorusuz bir cevaptır.) Thomas K başka bir cevap (grafikler, düğümler, kenarlar, ateş, infaz, vb) gibi temsil/uygulama açısından FRP açıklamak istemiyorum. Birçok olası uygulama yöntemi var, ama uygulaması yok ne FRP diyor.
FRP hakkında Laurence G basit açıklama ile rezonansa ediyorum "değeri temsil eden veri 'zaman içinde".' Geleneksel zorunlu programlama sadece dolaylı olarak bu dinamik değerleri, devlet ve mutasyonlarla yakalar. Tam tarihini (geçmiş, şimdiki zaman ve gelecek zaman yok birinci sınıf temsil etti. Ayrıca, sadecefarklı bir şekilde gelişiyordeğerleri zorunlu paradigma geçici olduğu (dolaylı olarak) yakalanan, ayrık olabilir. Buna karşılık, CTP bu değişen değerleri yakalardoğrudanve hiçbir zorluk vardırsürekligelişen değerler.
FRP teorik ve pragmatik fareler' zorunlu eşzamanlılık veba yuvası.bir şeye takılmış çalışan olmadan eş zamanlı demek oluyor ki sıradışı Anlamsal, CTP bu eşzamanlılıkiyi ayarlanmış,belirlivesürekli. (Anlamı, uygulama değil, senden bahsediyorum. Bir uygulama veya eşzamanlılık ya da paralellik içerebilir.) Semantik kararlılıkla muhakeme için çok önemli, hem de titiz ve gayri resmi. Eşzamanlılık zorunlu programlama (belirleyici olmayan serpiştirmeye nedeniyle) çok büyük bir karmaşıklık ekler ise, CTP içinde zahmetsiz.
CTP nedir? Kendin icat olabilir. Bu fikir ile baÅŸlar:
Dinamik/gelişen değerler (yani, değerler "zamanla") birinci sınıf değerleri kendilerini. Onları tanımlamak ve onları birleştirmek dışarı fonksiyonları içine ve onlara iletebilirsiniz. Ben bunları diye. davranışlar
Davranışları sıralı ve paralel kombinasyonu ile bir kaç temel öğeler, (statik) davranışları ve Saat (bir saat gibi) sabit, ve sonra inşa edilir.ndavranışları uygulayarak bir n-li fonksiyonu (statik değerler), "nokta-bilge", yani, zaman içinde sürekli. tarafından birleştirilir
Ayrık olaylar için hesap için, başka bir türü (Aile) "olaylar", her hangi bir akış (sonlu ya da sonsuz) olaylar vardır. var Her olay bir zaman ve değer ilişkili vardır.
Olan bütün davranışları ve olayları inşa edilebilir kompozisyon kelime ile gelip, bazı örnekler ile oynamak. Daha genel/basit parçalara sıyrılmaya tutun.
Çok biliyorsun sen de sağlam bir zemin, bütün model bir kompozisyon Vakfı, kullanma tekniği denotational anlambilim, sadece anlamına gelir (a) her tür bir karşılık basit ve kesin bir matematiksel tür "anlam", ve (b) her ilkel ve operatör basit ve kesin bir anlamı, bir işlevi anlamları getirilmiştir. Asla ve aslakeşif süreci içine karışımı uygulama konuları. Eğer bu açıklama size manasız geliyor, bakınDenotational design with type class morphisms(b)Push-pull functional reactive programming(uygulama bit) göz ardı, ve (c) 8**. Denotational semantiği iki parça, iki kurucuları Christopher Strachey ve Dana Scott onun vermesi gereken dikkat: daha kolay & daha faydalı Strachey ve daha sert ve daha az yararlı (yazılım tasarımı) Scott parçası.
Eğer bu prensiplere sadık kalacaksan, FRP ruhu içinde bir şey daha fazla veya daha az alırsın.
Nerede bu ilkeler aldım mı? Yazılım tasarımı dalında, hep aynı soruyu soruyor: "bu ne anlama geliyor?". Denotational semantik beni bu soru için kesin bir çerçeve, ve benim estetik (beni tatmin etmek gerek hem operasyonel veya aksiyomatik semantik aksine) uygun olanı verdi. Kendi kendime sordum davranış nedir? Ben yakında zorunlu hesaplama geçici ayrık doğası belirli bir tarzı, bir eksiklik olduğunu fark ettimmakinedavranış doğal bir açıklama yerine. Aklıma davranış, en basit kesin açıklama sadece (sürekli) zaman", benim model." anlamına geliyor Nefis, bu model kolay ve zarafet ile sürekli, deterministik eşzamanlılık işler.
Oldukça zor bu model doğru ve verimli bir şekilde uygulamak oldu, ama bu başka bir hikaye.
Yapısal programlama ve fonksiyonel pro...
'In ÅŸu anki Reaktif Fonksiyonel P...
'pythonic' eÅŸdeÄŸer 'kat...
Scala fonksiyonel Programlama Reaktif...
Karşılaştırma çekirdekli.uyumsuz ve Fo...