İşlevsel programlamanın ikinci baharı mı? Yükselişinin ardındaki nedenleri yeniden ortaya çıkarın

Tam metin 2055 Kelimeler, tahmini öğrenme süresi 6 dakika

Resim kaynağı: Pexels

Thomas Kuhl, "bilimsel devrim" paradigma teorisini önerdikten sonra, Robert Floyd 1979 Turing Ödülü sunumunda programlama paradigması terimini kullandı.

Programlama paradigması, basit bir ifadeyle, komut yazma yöntemidir.

Hepimizin bildiği gibi, bir dil fikri programlama paradigmasına dayanır. En iyi bilinen üç paradigma, nesne yönelimli programlama, zorunlu programlama ve işlevsel programlamadır. İyi ya da kötü değiller, önemli olan işi yapmak için doğru araçları kullanmaktır.

Bunların arasında işlevsel programlama, çoğu yazılım mühendisinin aşina olmadığı bir kavramdır.

İşlevsel programlama, bilgisayar işlemlerini işlevsel hesaplamalar olarak ele alan bir programlama yöntemidir. Fonksiyonel programlama dilinin en önemli temeli lambda hesaplamasıdır ve lambda hesabının fonksiyonu, fonksiyonları girdi (parametreler) ve çıktı (dönüş değerleri) olarak kabul edebilir.

Zorunlu programlama ile karşılaştırıldığında, fonksiyonel programlama, fonksiyonların hesaplanmasının komutların yürütülmesinden daha önemli olduğunu vurgular.

Prosedürel programlamaya kıyasla, fonksiyonel programlamadaki fonksiyon hesaplamaları herhangi bir zamanda çağrılabilir.

Lisp'in bilgisayar programları yazmak için kullandığı ikinci programlama dili aslında işlevsel paradigmaya aittir. Fonksiyonel programlama, programlama tanımlarını basitleştirerek, geleneksel programlama gibi sınıf yapıcısında depolanan nesneleri değiştirmek yerine verilerin değişmezliğine ve matematiksel hesaplamalara öncelik verir. Modern fonksiyonel programlamada, bu tür bir düşünce biraz dar, ama ille de kötü bir şey değil. Fonksiyonel dillerin değişkenliği fonksiyonel programlamaya birçok fonksiyonu beraberinde getirir Fonksiyonel programlamanın çok pratik olduğu söylenebilir.

Bunu akılda tutarak, işlevsel programlama, Python'un işlevsel özelliklere sahip olması gibi işlevsel dillerle sınırlı değildir. İşlevsel programlama geleneksel programlamadan çok farklı olsa da, işlevsel ve nesneye yönelik paradigmaların, veri biliminde kullanılan çoğu dile nispeten yakın olduğu görülmektedir.

İşimize uygun

Resim kaynağı: Pexels

İşlevsel dillerin çoğunun başlığında "istatistik" kelimesi bulunur. Bu kullanışlıdır çünkü veri bilimciler istatistikçilere çok benzerler, ancak daha fazla programlama ve makine öğrenimi becerisine sahiptirler. İşlevsel diller genellikle daha hızlıdır ve veri bilimcileri için kullanımı daha kolaydır.

İnanın bana, C koduna hızlıca göz atmak istemezsiniz çünkü doğruluk biraz düşüktür. İşlevsel dillerin çoğu tamamen okunabilir ve yazılması ve ustalaşması çok kolaydır. İşlevsel programlama, İnternet'teki en eski büyük veri hattının temelidir ve bazı insanlar buna şaşırabilir. Makine öğrenimi ve veri hesaplamanın gelişmesiyle birlikte, fonksiyonel programlama giderek popüler hale geldi.

Havalı dil

Birçoğu kendi özelliklerini diğer geleneksel özelliklerle harmanlayan ve harmanlayan pek çok harika istatistiksel dil vardır. Özellikle aşağıdaki işlevsel programlama dillerini seviyorum.

R dili

R dili eski dostumuzdur.

R dili geleneksel bir işlevsel dildir, ancak diğer birçok dil gibi, çoklu paradigmadır (veya haline gelmiştir), yani, her bir özel programlama paradigmasından en sevdiğiniz paradigmayı seçebilirsiniz. Bu, R diline değişkenlik avantajı sağlar. R dili S dilinden kaynaklanmıştır ve istatistiksel hesaplamalara odaklanmıştır.

Julia

Julia her zaman en sevdiğim programlama dili olmuştur.

İşlevsel olmasına rağmen, programlamayı daha kolay hale getiren bazı değişken, nesneye yönelik özellikler içerir. Yüksek seviyeli bir dil olarak Julia çok hızlı. Tip bildirimi yapmak kolaydır, bildirim uygun olduğunda C dili kadar hızlı olabilir ve R dili ve Scala'dan daha okunabilirdir.

Genel olarak Julia kullanmanın faydalarından biri, model oluşturmanın ve eğitmenin çok uzun sürmemesidir, çünkü dil basittir ve makine öğrenimi (ML) de çok hızlıdır. Makine öğrenimi paketim Lathe gibi bazı durumlarda, makine öğrenimi birkaç satır kodla tamamlanabilir ve kurucunun özellikleri parametre dinamikleri kullanılarak daha kolay değiştirilebilir.

Haskell

Haskell, yukarıda bahsedilen çoklu paradigma dillerinden tamamen farklıdır ve saf işlevselliği ile bilinir.

Haskell'i hiç kullanmadım, bu yüzden onu temsil edemem, ama bildiğim kadarıyla Haskell gerçekten havalı bir dil. Haskell hakkındaki bilgim çok sınırlıdır. Yukarıda belirtildiği gibi, çoğu modern dil çok paradigmalı olup, yeni bir kod tabanı oluşturmadan güvenlik açıklarını etkili bir şekilde düzeltmelerine olanak tanır.

Lisp

Lisp, veri bilimi alanında çok iyi bilinmese de, yine de havalı bir dildir.

Lisp ve Julia, programlamayı çok kullanışlı ve basit hale getirir. Çok dikkate değer bir özellik Lisp ve Julia'nın makrolarıdır. Makronun kendisi önemli bir işlevsel özelliktir ve doğru kullanılırsa, dizüstü bilgisayardaki programlamayı kolaylaştırabilir. Lisp'in kendisini Scheme, Clojure ve (Genel) Lisp dahil olmak üzere bir dizi dile böldüğü unutulmamalıdır. İkinci bir yüksek seviyeli dil olarak, etkisini ve işlevlerini keşfetmek veya tahmin etmek zordur, ancak etki kapsamı kesinlikle oldukça geniştir.

Resim kaynağı: Pexels

Yazarın Julia'ya olan sevgisi apaçık olmalıdır.Ayrıca Julia ile ilgili makaleler de yayınladım. Bazen Python kurucuları (sınıfları) belirli görevler için daha uygun olsalar da, Julia bir bütün olarak tamamlayabilir Çalışın ve benim için daha sorunsuz ve verimli.

Diğerleri için işlevsel diller hedeflerine ulaşamayabilir ve nesneye yönelik dilleri kullanan kişilerin öğrenmesi daha zordur.

Son tahlilde, programlama dili bir seçimdir.Çoğu programlama dilinin geliştiricileri vardır ve avantajları ve dezavantajları vardır, bu nedenle iyi ile kötü arasında hiçbir fark yoktur.Kişisel programlama alışkanlıklarınıza ve tercihlerinize bağlıdır!

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

RPA devrimi yeni bir dünyanın kapısını açıyor: Otomasyon 1920'lerde çalışmayı nasıl yeniden tanımlayacak?
önceki
Fetiş: Codethulhu nasıl çağrılır
Sonraki
Core Voice Today | İlk yerli vaka! Beyin-bilgisayar çipi felçli hastaların zihinleriyle kola içmesine ve mahjong oynamasına izin veriyor
2020 Başlangıç çizgisinde kazanın, veri biliminde 5 temel beceri
Yapay zeka ile ilgili olarak, 2020'de test edilmesi gereken on trend
Python'da * args ve ** kwargs nedir? Bu nasıl kullanılır?
Kolaydan zora, altı temsili programlama problemine meydan okumaya cesaretiniz var mı? (Çözüm planı ile)
Core Voice Today | Sonuna kadar zor mu? Apple, iPhone'un kilidini açmak için dava açmaya hazırlanıyor
Bir baş veri sorumlusu, otomasyon yoluyla verilerden değer yaratmayı nasıl başarır?
Yıl sonunda işten çıkarıldı! Tazminat ve yıl sonu ikramiyeleri yalnızca soruna göre dağıtılabilir mi?
Sinir ağlarını gözlemlemeyi öğrenin: tüm model eğitiminde evrişimli katmanın aktivasyonunu görselleştirin
Xinsheng Bugün | İlk yaşayan robot! Bilim adamları kurbağa kök hücrelerinden canlı robotlar yapıyor
Ağ güvenliği nasıl oluşturulur? Korumanın amacı en iyi ders kitabınızdır
G4345 treni ve eve dönüş yolu: Kız arkadaşından bir sertifika almak istiyor ve "ayrılması zor" diyor
To Top