Anahtar Farkı – İşlevsel Programlama ve Zorunlu Programlama
İşlevsel programlama ile zorunlu programlama arasındaki temel fark, işlevsel programlamanın hesaplamaları matematiksel işlevler olarak kabul etmesi ve durum ve değişken verileri değiştirmekten kaçınması, zorunlu programlama ise program durumunu değiştiren ifadeleri kullanmasıdı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. Nesne yönelimli paradigmada, program nesneler kullanılarak yapılandırılır ve nesneler, yöntemleri kullanarak mesajları iletir. Mantıksal programlama, hesaplamayı yalnızca matematiksel mantık açısından ifade edebilir. Diğer iki programlama paradigması, işlevsel programlama ve zorunlu programlamadır. Fonksiyonel programlama, hesaplamaların matematiksel fonksiyonların değerlendirilmesi olarak ifade edilmesini 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.
Fonksiyonel Programlama Nedir?
Fonksiyonel Programlama, Matematiğe dayalıdır. İşlevsel programlamanın arkasındaki temel ilke, tüm hesaplamaların ayrı matematiksel işlevlerin bir kombinasyonu olarak kabul edilmesidir. Matematiksel bir işlev, girdileri çıktılara eşler. f(x)=xx adında bir fonksiyon olduğunu varsayalım. x değeri 1, çıktı 1 ile eşlenir. x değeri 2, çıktı 4 ile eşlenir.x değeri 3, çıktı 9'a eşlenir ve bu böyle devam eder.
Şekil 01: İşlevsel programlama dili örneği – Haskell
İşlevsel programlamada, kalıplar dikkate alınır. İşlevsel programlama dilleri Haskell, sayıların toplamını bulmak için aşağıdaki yöntemi kullanır.
Toplam işlevinin tamsayı değerleri vardır ve sonuç da bir tamsayı olacaktır. Toplam olarak yazılabilir: [int] -> int. Toplama aşağıdaki kalıplar takip edilerek yapılabilir.
sum[n]=n, bir sayının toplamı sayının kendisidir.
Sayıların bir 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şlevin veya ifadenin, kapsamı dışındaki bazı durumları değiştirirse veya dönen değerin yanı sıra çağıran işlevlerle gözlemlenebilir bir etkileşimi varsa, yan etkileri 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ı anlamak için kullanışlıdır. İşlevsel programlamanın bir dezavantajı, işlevsel programlamayı öğrenmenin zorunlu programlamaya kıyasla daha zor olmasıdır.
Zorunlu Programlama Nedir?
Zorunlu programlama, bir programın durumunu değiştiren ifadeleri kullanan bir programlama paradigmasıdır. Bir programın nasıl çalıştığını açıklamaya odaklanır. Java, C ve C gibi programlama dilleri zorunlu programlama dilleridir. Ne yapılması gerektiği konusunda 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ğeri daha önce hesaplanan toplama eklemeye devam eder.
int toplam=0;
for (int i=0; i<=10; i++) {
toplam=toplam + i;
}
Zorunlu programlamayı öğrenmesi, anlaması ve hata ayıklaması kolaydır. Durum değişkenleri kullanıldığından program durumunu bulmak kolaydır. Bazı dezavantajlar, kodu uzun hale getirebilmesi ve ölçeklenebilirliği en aza indirebilmesidir.
İşlevsel Programlama ile Zorunlu Programlama Arasındaki Benzerlik Nedir?
Hem Fonksiyonel Programlama hem de Zorunlu Programlama programlama paradigmalarıdır
İşlevsel Programlama ile Zorunlu Programlama Arasındaki Fark Nedir?
İşlevsel ve Zorunlu Programlama |
|
Fonksiyonel Programlama, hesaplamayı matematiksel fonksiyonların değerlendirilmesi olarak gören ve durum ve değişken verileri değiştirmekten kaçınan bir programlama paradigmasıdır. | Zorunlu Programlama, bir programın durumunu değiştiren ifadeleri kullanan bir programlama paradigmasıdır. |
Yapılar | |
Fonksiyonel Programlama, fonksiyon çağrıları ve üst düzey fonksiyonlar içerir. | Zorunlu Programlama if, else, while, for döngüler, fonksiyonlar, sınıflar ve nesneler içerir. |
Programlama Dilleri | |
Scala, Haskell ve Lisp işlevsel programlama dilleridir. | C, C++, Java zorunlu programlama dilleridir. |
Odaklanma | |
Fonksiyonel Programlama nihai sonuca odaklanır. | Zorunlu Programlama, bir programın nasıl çalıştığını açıklamaya odaklanır. |
Sadelik | |
Fonksiyonel programlama zordur. | Zorunlu programlama daha kolaydır. |
Özet – İşlevsel Programlama ve Zorunlu Programlama
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. İşlevsel programlama ile zorunlu programlama arasındaki fark, işlevsel programlamanın hesaplamaları matematiksel işlevler olarak kabul etmesi ve durum ve değişken verileri değiştirmekten kaçınması, zorunlu programlama ise program durumunu değiştiren ifadeleri kullanmasıdır.