Haskell işlev kümesinin tüm matematiksel işlevlerin yalnızca bir alt kümesi olduğunu biliyorum, çünkü bu bir programlama dilidir, bu nedenle tüm işlevleri hesaplanabilir olmalıdır. Ancak tüm Haskell fonksiyonlarının (ve genel olarak saf fonksiyonların) matematiksel açıdan continuous olduğu doğru mu?Fonksiyonel programlamanın tüm saf fonksiyonları sürekli mi?
cevap
Bağlantılı olduğunuz Wikipedia sayfasının ikinci paragrafında belirtilen Scott sürekliliği açısından hesaplanabilir işlevler süreklidir.
(psödo-Haskell)
isInfinite :: [a] -> Bool
isInfinite xs
| {- xs is an infinite list x0 : x1 : x2 : ... -} = True
| {- xs is a finite list x0 : x1 : x2 : ... : xn : [] -} = False
| {- xs is a list with diverging spine
x0 : x1 : x2 : ... : xn : _|_ -} = _|_
Bu
() :() :() : ...
dizisi
arasında sup olduğu için sürekli olmak başarısız değildir sürekli olduğu bir fonksiyonun örneği,_|_
() : _|_
() :() : _|_
...
ama
True = isInfinite (() :() :() : ...)
sonlu bir zaman miktarında bir fonksiyonu sadece girdinin bir sınırlı miktarda incelemek dolayı özel,
_|_ = isInfinite (_|_)
_|_ = isInfinite (() : _|_)
_|_ = isInfinite (() :() : _|_)
...
Hesaplanabilir fonksiyonlar süreklidir dizisinin sup değildir. Dolayısıyla, eğer hesaplanabilir bir işlev, belirli bir girişte True
döndürürse, belirli sonlu bir gözlemler koleksiyonu üzerindeki orijinal girdiyle aynı olan giriş kümesindeki her girişe True
dönmelidir. Orijinal girdiye yakınlaşan herhangi bir artan dizi sonunda bu kümenin içine inecek ve bu dizide kalacak, böylece bu artan dizi üzerindeki fonksiyonun değerleri dizisi True
'a yakın olacaktır.
Sürekli bir işlev zorunlu olarak hesaplanabilir değildir. Örneğin, Integer
düz bir etki alanı olduğundan, herhangi bir sipariş koruyucu (yani f _|_ = _|_
veya f
sabittir) işlevi Integer -> Bool
süreklidir. Ancak elbette, sadece birçoğu kararlaştırılabilir.
Mükemmel, açık bir cevap. – luqui
- 1. Tüm JavaScript fonksiyonları kurucular değil mi?
- 2. kestrel fonksiyonel programlama Tasarım Kalıbının katma değeri nedir? (Scala)
- 3. PHP fonksiyonları ve fonksiyonları
- 4. GDB'den bir programdaki tüm fonksiyonları listelemesini isteyin
- 5. Fonksiyonel Bağımlılık
- 6. Saf Java SQLiteJDBC sürücüleri gerçekten saf mı?
- 7. GPU'ya tam fonksiyonel programlama
- 8. Fonksiyonel Programlamada Dizilimi Anlama
- 9. Scala Implicits Fonksiyonel Literallar
- 10. javascript fonksiyonları
- 11. tetikleme fonksiyonları
- 12. Özellik, sürekli bir özellik mi yoksa (A => B) mi?
- 13. TDD, fonksiyonel testi assertRegex
- 14. Stajyer 2 fonksiyonel testler
- 15. Döngüler ve döngüler için programlamanın zorlanması
- 16. İki fonksiyonları
- 17. elisp fonksiyonları
- 18. çağrılması fonksiyonları
- 19. Bir grafikteki tüm fonksiyonları çağrı grafiği ile belgelemek için Doxygen?
- 20. Saf Python Dörtlü ağaç Uygulama
- 21. WinInet POST SSL ile (HTTPS) saf C ile mi?
- 22. Esnek Değişkenler, saf Haskell2010
- 23. Belirli öğelerin tüm ana düğümlerini saf javascript'e nasıl alabilirsiniz?
- 24. Java jenerik: Fonksiyonel benzeri max()
- 25. Yazma geri arama fonksiyonları
- 26. sarma fonksiyonları ve function.length
- 27. gelip nasıl Linq fonksiyonları
- 28. Fonksiyonları vektöre yerleştirin ve
- 29. Python - yeniden çizim fonksiyonları
- 30. Yuvalama EL fonksiyonları
@ HarryDeveloper1212 Bence bu iyi bir soru. Soruyu anladığım şeyi (umarım) açıklığa kavuşturmak için bazı düzenlemeler yaptım. Değişikliklerimden memnun kalmazsanız, tekrar düzenlemek için [sorunuzu düzenleyin] (http://stackoverflow.com/posts/34617662/edit) için çekinmeyin. –