Kategori teorisi açısından geleceklerin veya vaatlerin yararlı bir açıklaması var mı ? Özellikle, Geleceğin kategorik çifti ne olabilir?
Kategori teorisi açısından geleceklerin veya vaatlerin yararlı bir açıklaması var mı ? Özellikle, Geleceğin kategorik çifti ne olabilir?
Yanıtlar:
Olduğu gibi, şimdi bunun hakkında bir yazı yazıyorum. IMO, gelecekleri veya vaatleri düşünmenin iyi bir yolu, Curry-Howard'ın zamansal mantıkla olan yazışmasıdır .
Temel olarak, geleceklerin ardındaki fikir, devam etmekte olan ve senkronize edebileceğiniz bir hesaplamayı temsil eden bir veri yapısı olmasıdır. Zamansal mantığı açısından, bu sonuçta operatörüdür . Bunun monadik bir yapısı var: , işleminin argümanını derhal döndüren bir işlem ve
then
ve Scala 2.10 standart monadic arayüzü verir .
Sonunda operatörüne olan çift , her an bir aldığınızı söyleyen, zamansal mantığın her zaman Operatör operatörüdür . Kripke zamansal mantığının anlamsal mantığından (sadece uygulanabilirliği modelleyeceğiniz) bir -calculus'un kategorik bir anlambilimine ( lambda-terimlerini / ispatlarını modellediğiniz yere) geçtiğinizde, bunu yapmanın aslında birden fazla yolu vardır. .
Yapabileceğin en basit şey almak , çünkü bir kez sahipseniz, her zaman elinizdedir. Bu işe yarıyor ama sıkıcı, IMO. :)
Yapılacak en doğal şey (IMO), ki bu, potansiyel olarak farklı) , her seferinde . Ardından, işlevsel reaktif programlama (FRP) 'nin (ilk önce Tarmo Uustalu ve Varmo Vene tarafından önerilen) kombine stilini, geleceğe yönelik monadik programlama tarzı olarak görebilirsiniz.
Bununla birlikte, comonadic calculus, zarafetlerine rağmen, açık bir şekilde akışlarla programlamaya göre ciddi bir ifade kaybına neden olur, çünkü kullandıkları serbest kömürböcekleri kategorisi çok ilginç programları ifade etmek için çok az küresel unsurlara sahip olduğu ortaya çıkar. , özellikle sabit noktalar.
Nick Benton ve ben, Ultrametrik Reaktif Programların Semantikası makalemizdeki akışlarla açıkça programlamayı tartıştık . Daha sonra, Alan Jeffrey , LTL'yi, FRL türünde FRP olan bir tür sistem olarak kullanmayı önerdi , Wolfgang Jeltsch'in de makalesinde yaptığı bir gözlem. Doğrusal Zamanlı Temporal Mantık ve Fonksiyonel Reaktif Programlama için Ortak Bir Kategorik Anlambilimine Doğru.
Nick ile benim aldığımız görüş ile Alan ve Wolfgang'ın aldıkları bakış açısı arasındaki fark, Birkedal ve arkadaşlarının verdiği yapıyı karşılaştırarak en iyi anlaşıldı (IMO). Sentetik korumalı alan teorisindeki ilk adımlar: Alan'ın kağıt ile ağaçların . Ağaçların topoları (büyüklüğüne göre sıralanan doğal sayılar üzerinde ön ısıtıcılar) Nick ve benim kullandığımız ultrametrik uzaylar kategorisine çok benzer, ancak Alan kategorisi ile karşılaştırmak çok daha kolaydır, çünkü bunlar her ikisi de ön kategoriler.
Özellikle eşzamanlılık için vadeli işlemlerle ilgileniyorsanız, bakmak daha iyi bir fikir olabilir. LTL yerine CTL'ye . AFAIK, şu anda keşfedilmemiş bir bölge!
EDIT: İşte taslak için bir link . Belge çoğunlukla yazılı FRP uygulamakla ilgilidir, bu nedenle dil senkronizedir. Ancak, Bölüm 3.3'teki gelecek / olay tartışmasının çoğu temel olarak gerçekten eşzamanlı dillere de uygulanmalıdır.
Try[T]
ve Future[T]
çift oldum, ancak bunun ne anlama geldiğini / ne anlama geldiğini tam olarak anlamadım.