
Harry James
0
3194
764
İnternetteki programlama trendlerini okumak için herhangi bir zaman harcıyorsanız, fonksiyonel programlamayı duymuş olacaksınız. Terim oldukça sık atılır, ama ne anlama geliyor??
Hangi işlevsel programlamanın ne olduğunun farkında olsanız bile, hangi dillerin daha uygun olduğunu bilmiyor olabilirsiniz. Sonuçta, tüm programlama dilleri eşit yaratılmamıştır. İşlevsel programlama paradigmalarını birçok dilde uygulayabilseniz de, kendinizi daha rahat hissedeceğiniz bazı yerler var..
İşlevsel Programlama Nedir??
Eğer matematikte bir geçmişiniz varsa, işlevsel programlamaya başlayabilirsiniz. Bunun nedeni, işlevsel programlama paradigmasının bilgisayar gibi matematiksel işlevler gibi davranmasıdır. Eğer matematiksel bir geçmişiniz yoksa, bu kafanız karışmış hissetmenize neden olabilir.
Temel olarak, fonksiyonel programlama fonksiyonları ve verileri değişken olarak değerlendirir. Verileri bir işleve aktarırsınız ve genellikle dönüştürülen verileri veya başka türde bir veriyi döndürür. İşlevsel programlamada, işlev orijinal verileri veya program durumunu asla değiştirmemelidir.
Unix felsefesine her programın bir şeyi iyi yapması gerektiği konusunda benzerlik vardır. Bir işlev programınızın çeşitli bölümlerine dokunmamalıdır. Bunun yerine, girişini almalı ve size bir çıktı vermelidir.
İdeal olarak, fonksiyonel programlamada, fonksiyonlar mümkün olduğunda saf olmalıdır. Bu, aynı giriş verildiğinde, fonksiyonun çıkışının daima aynı kalacağı anlamına gelir.
İşlevsel ve Nesneye Yönelik Programlama
Bu, nesne yönelimli programlama gibi bir şeyden dramatik bir ayrılmadır. Nesne yönelimli programlamada, genellikle o nesnenin parçası olan veri veya durumu değiştirmeye adanmış çeşitli yöntemlerle temel bir nesneye sahip olursunuz. Bir yöntem açıkça belirtilmediği sürece verileri veya durumu bile değiştirebilir.
Pratik programlarda, bazen bu mantıklı. Bununla birlikte, durumları veya verileri değiştiren şeylerin her zaman net olmadığı için programların sürdürülmesini zorlaştırabilir. İşlevsel programlama başlangıçta akademik ortamlarda kullanılmış, ancak bu tür sorunları önlemeye yardımcı olabilir.
1. JavaScript
Bazı programlama dilleri işlevsel programlamaya izin verirken, diğerleri onu teşvik eder ve hatta uygular. JavaScript ilk kategoriye giriyor. Dilde işlevsel programlama paradigmalarını kullanırken, nesne yönelimli bir yaklaşımı da kolayca kullanabilirsiniz.
Bununla birlikte, JavaScript'in içine yerleştirilmiş çok sayıda işlevsel programlama paradigması vardır. Örneğin, üst düzey işlevleri ele alalım. Bunlar, diğer işlevleri argüman olarak alabilen işlevlerdir..
JavaScript gibi dizilerle çalışan çeşitli işlevler vardır. haritası ()
, () Azaltmak
, () Filtre
, ve diğerleri, hepsi üst düzey fonksiyonlardır. Bu, bir dizi ile her şeyi hızlı bir şekilde yapmak için bunları bir araya getirmenizi sağlar.
JavaScript'in önceleri değişkenlikle ilgili bazı sorunlar olsa da, ECMAScript standardının yeni sürümleri düzeltmeler sağlar. Hepsini yakalamak yerine var
değişkenleri tanımlamak için anahtar kelimeyi const
ve let
. Birincisi, adından da anlaşılacağı gibi sabitleri tanımlamanızı sağlar. İkinci, let
, Bir değişkenin kapsamını, bildirildiği işleve sınırlar.
2. Python
JavaScript gibi, Python da istediğiniz sayıda programlama paradigmasını kullanabileceğiniz genelleştirilmiş bir dildir. Python'un Dezavantajları Olabilir 4 Sebep Neden Python Sizin için Programlama Dili Değildir 4 Neden Python Sizin İçin Programlama Dili Değildir Python programlama dili oldukça popülerdir, ancak Python'dan kaçınmak için birkaç neden . , ancak işlevsel programlama bunlardan biri değil. Resmi Python belgelerinde işlevsel programlamaya bir giriş bile var..
Başlamak için, aynı çoğunu bulacaksınız haritası ()
, () Filtre
, () Azaltmak
, ve yukarıda belirtilen benzer fonksiyonlar. JavaScript'te olduğu gibi, bunlar diğer işlevleri argüman olarak aldıklarından daha üst düzey işlevlerdir. Python'da, işlevsel programlama biçiminde bir avantaja sahiptir. lambda
anahtar kelime.
Lambda ifadelerini birkaç şekilde kullanabilirsiniz. Bunu kullanmanın bir yolu basit fonksiyonlar için kısa yoldur. Bir değişkene atandığında, lambda ifadelerini tam olarak standart bir Python işlevi gibi çağırabilirsiniz. Lambda ifadelerinin asıl avantajı, onları adsız işlevler olarak kullandığınızda ortaya çıkar..
Anonim işlevler, bu listede JavaScript ve diğer dillerde de çalışır. Yerinde tanımlayabileceğiniz için daha üst düzey işlevlerle kullanıldığında özellikle kullanışlı oluyorlar. Anonim işlevler olmadan, basit eklemeleri bile özel işlevler olarak önceden tanımlamanız gerekir..
3. Clojure
JavaScript ve Python'un aksine Clojure, programcılar arasında bile tam olarak bir ev adı olmayabilir. Aşina olmadığınız bir durumda, Clojure, 1950'lerin sonlarına dayanan Lisp programlama dilinin bir lehçesidir. Bu onunla birlikte işlevsel programlama için mükemmel olan şeyleri yapmanın çok özel bir yolunu getiriyor.
Diğer Lisp lehçeleri gibi, Clojure da kodu veri olarak kabul eder. Bu, kodun etkin bir şekilde kendini değiştirebileceği anlamına gelir. Diğer Lisp lehçelerinin aksine, Clojure Java platformunda çalışır ve JVM bayt koduna göre derlenir. Bu, Clojure'da yazılmış olsun veya olmasın, Java kütüphaneleriyle çalışabileceği anlamına gelir.
Bu listedeki önceki dillerden farklı olarak Clojure, baştan sona işlevsel bir programlama dilidir. Bu, özellikle veri yapılarında, mümkün olduğunda değişmezliği savunduğu anlamına gelir..
Clojure tüm programların matematiksel olmasını beklemiyor “kanıtlanabilir,” ancak mümkün olduğunda saf işlevlerin kullanılmasını teşvik eder.
4. Karaağaç
Bu listedeki en yeni dillerden biri olan Elm, başlangıçta 2012 yılında Evan Czaplicki tarafından tasarlanan tamamen işlevsel bir dildir. Dil, özellikle kullanıcı arayüzleri oluşturmak için web geliştiricileri arasında popülerlik kazanmıştır..
Bu listedeki önceki girişlerin aksine, Elm statik tip kontrolünü kullanır. Bu, çalışma zamanı istisnalarının olmamasına ve derleme sırasında yakalanmamalarına neden olan hataların sağlanmasına yardımcı olur. Bu, kullanıcılar için daha az görünür hata anlamına gelir;.
Elm derleyicisi HTML, CSS ve JavaScript'i hedefler. Java’da çalışan programları yazmak için Clojure’i kullanabileceğiniz gibi, Elm’de JavaScript kitaplıkları kullanan uygulamalar yazabilirsiniz..
Buradaki Elm ve diğer diller arasındaki en büyük farklardan biri, genel bulamamanızdır. () Filtre
, haritası ()
, ve benzer fonksiyonlar. Bunun yerine, bunlar gibi veri türüne göre tanımlanır List.map
veya Dict.map
.
5. Haskell
Haskell, başka bir statik olarak yazılmış, tamamen işlevsel bir dildir. Elm'den farklı olarak, Haskell bir süredir buralardaydı. Dilin ilk versiyonu 1990 yılında tasarlandı. En son standart Haskell 2010, bir sonraki versiyon ise 2020 için planlandı..
Zaten araştırdığımız gibi, Haskell'in tamamen işlevsel doğası, tasarım gereği, işlevlerin yan etkileri olmaması gerektiği anlamına gelir. Bu, işlevsel programlamanın akademi'deki köklerine rağmen, gerçek dünyadaki problemleri çözmek için çok uygun hale getirir..
Yaygın popülerlik eksikliğine rağmen, Haskell yaygın olarak kullanılan bazı projelerde kullanılmıştır. Xmonad pencere yöneticisi tamamen Haskell dilinde yazılmıştır. Farklı biçimlendirme türlerini diğer biçimlere ve diğer biçimlere dönüştüren Pandoc da dili kullanır.
Standart haritası ()
, () Filtre
, () Azaltmak
, ve JavaScript veya Python'dan Haskell'e konseptler almanıza izin vermesi gereken diğer üst düzey işlevler de mevcuttur. Dil hakkında daha fazla bilgi edinmek istiyorsanız, Great Good İçin Bir Haskell Öğrenin popüler bir başlangıç noktasıdır.
Programlamada Yeni misiniz??
Henüz terbiyeli bir kodlayıcı değilseniz, yukarıdaki terimler ve dillerden bazıları biraz ezoterik görünebilir. Bu iyi, bilmediğiniz şeyleri bilmek daha iyi bir öğrenen olma yolunda atılan ilk adımlardan biri..
Yukarıda listelenen dillerden bazıları yeni başlayanlar için diğerlerinden daha iyidir. Yeni başlayanlar için en iyi programlama dilleri listemize göz atın. 6 Yeni Başlayanlar İçin Öğrenilmesi Gereken En Kolay Programlama Dilleri 6 Yeni Başlayanlar İçin Öğrenilmesi Gereken En Kolay Programlama Dilleri Programlamayı öğrenmek, düzenleme süreciyle ilgili olduğu kadar doğru dili bulmakla ilgilidir. Yeni başlayanlar için ilk altı en kolay programlama dili. . İki liste arasında bir geçiş olduğunu fark edeceksiniz..