temel fark fonksiyonel programlama ile zorunlu programlama arasında Fonksiyonel programlama hesaplamaları matematiksel fonksiyonlar olarak görür ve durum ve değişken verileri değiştirmekten kaçınırken, zorunlu programlama programların durumunu değiştiren ifadeleri kullanır.
Bir programlama paradigması, bir bilgisayar programının yapısını ve öğelerini oluşturma stili sağlar. Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmaya yardımcı olur. Bir programlama dili daha fazla paradigmayı etkileyebilir. Nesneye yönelik paradigmada, program nesneler kullanılarak yapılandırılır ve nesneler yöntemler kullanarak mesajlar iletir. Mantık programlama hesaplamayı sadece matematiksel mantık açısından ifade edebilir. Diğer iki programlama paradigması da fonksiyonel programlama ve zorunlu programlamadır. Fonksiyonel programlama matematiksel fonksiyonların değerlendirilmesi olarak hesaplamaları ifade etmeyi sağlar. Zorunlu programlama, belleğin durumunu açıkça değiştiren ifadeler sağlar. Bu makalede, işlevsel programlama ile zorunlu programlama arasındaki fark tartışılmaktadır..
1. Genel Bakış ve Temel Fark
2. Fonksiyonel Programlama Nedir
3. Zorunlu Programlama Nedir
4. Fonksiyonel Programlama ile Zorunlu Programlama Arasındaki Benzerlikler
5. Yan Yana Karşılaştırma - Tablo Şeklinde Fonksiyonel Programlama ile Zorunlu Programlama
6. Özet
Fonksiyonel Programlama Matematiğe dayanmaktadır. Fonksiyonel programlamanın arkasındaki temel prensip, tüm hesaplamanın ayrı matematiksel fonksiyonların bir kombinasyonu olarak kabul edilmesidir. Matematiksel bir fonksiyon, girdileri çıktılarla eşler. F (x) = x * x adında bir işlev olduğunu varsayın. X değeri 1 çıkış 1'e eşlenir. X değeri 2 çıkış 4'e eşlenir. X değeri 3 çıkış 9'a eşlenir ve bu şekilde devam eder.
Şekil 01: Fonksiyonel programlama dili örneği - Haskell
Fonksiyonel programlamada modeller dikkate alınır. Fonksiyonel programlama dilleri Haskell, sayıların toplamını bulmak için aşağıdaki yöntemi kullanır.
Sum işlevinin tamsayı değerleri vardır ve sonuç da bir tamsayı olur. Toplam olarak yazılabilir: [int] -> int. Toplama aşağıdaki kalıpları izleyerek yapılabilir.
sum [n] = n, bir sayının toplamı sayının kendisidir.
Bir sayı listesi varsa, aşağıdaki gibi yazılabilir. N, ilk sayıyı ve ns diğer sayıları temsil eder
toplam (n, ns) = n + toplam ns.
3,4,5 olan üç sayının toplamını bulmak için yukarıdaki desenler uygulanabilir.
3 + toplam [4,5]
3 + (4 + toplam [5])
3+ 4 + 5 = 12
Bir işlev veya ifadenin, kapsamı dışında bir durumu değiştirirse veya dönen değerin yanı sıra arama işlevleriyle gözlenebilir bir etkileşimi varsa yan etkilere sahip olduğu söylenir. Fonksiyonel programlama bu yan etkileri en aza indirir. Durum değişiklikleri fonksiyon girişlerine bağlı değildir. Programın davranışını anlarken kullanışlıdır. Fonksiyonel programlamanın bir dezavantajı, fonksiyonel programlamayı öğrenmenin zorunlu programlamaya göre daha zor olmasıdır.
Zorunlu programlama, bir programın durumunu değiştiren ifadeleri kullanan bir programlama paradigmasıdır. Bir programın nasıl işlediğini açıklamaya odaklanır. Java, C ve C # gibi programlama dilleri zorunlu programlama dilleridir. Ne yapılacağı hakkında adım adım bir prosedür sağlar. Zorunlu programlama dilleri, döngüler, sınıflar, nesneler ve işlevler için if, else, while gibi yapılar içerir.
Şekil 02: Zorunlu programlama dili örneği - Java
On sayının toplamı Java'da aşağıdaki gibi bulunabilir. Her yinelemede, i değeri toplama eklenir ve toplam değişkenine atanır. Her yinelemede, toplam değer önceden hesaplanan toplamı eklemeye devam eder.
int toplamı = 0;
için (int i = 0; i< =10; i++)
sum = sum + i;
Zorunlu programlama öğrenmek, anlamak ve hata ayıklamak kolaydır. Durum değişkenleri kullanıldığından program durumunu bulmak kolaydır. Bazı dezavantajlar kodu uzun sürebilir ve ölçeklenebilirliği en aza indirebilir.
Fonksiyonel ve Zorunlu Programlama | |
Fonksiyonel Programlama, hesaplamayı matematiksel fonksiyonların değerlendirilmesi olarak gören ve durum ve değişken verileri değiştirmeyi önleyen bir programlama paradigmasıdır. | Zorunlu Programlama, bir programın durumunu değiştiren deyimler kullanan bir programlama paradigmasıdır. |
Yapılar | |
Fonksiyonel Programlama fonksiyon çağrıları ve üst düzey fonksiyonlar içerir. | Zorunlu Programlama döngüler, işlevler, sınıflar ve nesneler için başka,. |
Programlama dilleri | |
Scala, Haskell ve Lisp fonksiyonel programlama dilleridir. | C, C ++, Java zorunlu programlama dilleridir. |
odak | |
Fonksiyonel Programlama nihai sonuca odaklanır. | Zorunlu Programlama, bir programın nasıl çalıştığını açıklamaya odaklanır. |
Basitlik | |
Fonksiyonel programlama zor. | Zorunlu programlama daha kolaydır. |
Bir programlama paradigması, bir bilgisayar programının yapısını ve öğelerini oluşturma stili sağlar. Fonksiyonel Programlama ve Zorunlu Programlama bunlardan ikisidir. Fonksiyonel programlama ve zorunlu programlama arasındaki fark, fonksiyonel programlamanın hesaplamaları matematiksel fonksiyonlar olarak görmesi ve zorunlu programların program durumunu değiştiren ifadeleri kullanması durumunda durum ve değişken verileri değiştirmekten kaçınmasıdır..
1. “Zorunlu Programlama.” Vikipedi, Wikimedia Vakfı, 28 Mart 2018. Buradan erişebilirsiniz
2. “İşlevsel Programlama.” Vikipedi, Wikimedia Vakfı, 28 Mart 2018. Buradan erişebilirsiniz
3.Computerphile. YouTube, YouTube, 30 Ağustos 2013. Buradan ulaşabilirsiniz
1.'Haskell Logosu 'Haskell1965 tarafından - Commons Wikimedia üzerinden kendi çalışması, (CC BY-SA 3.0)
2.'14485179234 'by Linux Ekran Görüntüleri (CC BY 2.0) - Flickr