F# ile Fonksiyonel Programlama
1955 yılında geliştirilen ve ilk örnek dilleri FORTRAN ve COBOL olan fonksiyonel programlama, nesneye dayalı programlama dilleri (C++, Java, Phyton vb.) kadar popüler olmasa da özellikle matematiksel, fiziksel ve mühendislik alanında birçok işlemi kolay fonksiyonlarla yapılmasını sağlamaktadır. MATLAB programının temelini de oluşturan fonksiyonel programlamanın son gözdesi olan, Microsoft’un geliştirdiği F# Programlamayı ve fonksiyonel programlamayı sizler için inceledik:
28.04.2014 tarihli yazı 18223 kez okunmuştur.
Fonksiyonel Programlama Nedir?
Fonksiyonel programlama, fonksiyonların kullanımına dayalı olan, Alonzo Church’ün geliştirdiği Lambda Calculus’ü yani fonksiyon uygulamaları ve tekrarlama fonksiyonlarını temel alan bir programlama paradigmasıdır. Fonksiyonel programlamada genellikle değişken durumların kullanımından kaçınılır ve bu yüzden fonksiyonel programlamada atama bulunmaz ve değişkenlerin değeri bir defa verildikten sonra bir daha değişmez.
►İlginizi Çekebilir: Matematikçilerin Prensi |Carl Friedrich Gauss
Fonksiyonel dillerin en önemli özelliklerinden biri yazılan programın yaptığı hesaplamalarına matematiksel fonksiyon olarak bakmasıdır. Böylece birden fazla hesaplamayı kısa matematiksel fonksiyonlarla yapmamızı sağlar. Ayrıca saf fonksiyonlar sayesinde hiçbir yan etkiden etkilenmeyerek ve yan etki göstermeyerek fonksiyonun değerinin aynı kalmasını sağlar. Fonksiyonel programlama, imperative dillerin ( C, Java…) aksine, sonuçlara değil kendisini ifade eden hesaplamalara odaklanır.
Günümüzde kullanılan fonksiyonel programlamanın en büyük örnekleri Haskell, OCaml ve F# dilleridir. Sayısal hesaplama ve programlama dili olan MATLAB’ın da oluşmasına katkı sağlayan fonksiyonel programlama, matematiksel, fiziksel ve mühendislik hesaplamarı ve çalışmalarında yoğun olarak kullanılır.
Basit matematiksel modellerden yararlanılarak çözülebilen uygulamalar daha az kod ile, uygulamalarımızı geliştirecek olduğumuz uygulamalarda yalnızca gerekli olan bileşenlerin kullanılması ve minimum düzeyde bellek kullanımı gibi özellikler fonksiyonel programlamanın temel özelliklerindendir. Günümüzde fonksiyonel programlamayı kullanabileceğimiz dillerden biri F#‘dır. F#‘da fonksiyonel programlar yardımı ile karmaşık uygulamaları daha pratik geliştirebiliriz.
F# Nedir?
F#, ilk olarak 2005’te duyurulan ve 25 Aralık 2013’te kararlı sürümü kullanılmaya başlanan bir fonksiyonel programlama dilidir. ML, Ocaml, C#, Phyton, Haskell, Scala, Erlang gibi dilleri temel alarak oluşturulan F#, Avustrulayalı bilgisayar bilimcisi Don Syme öncülüğünde Microsoft Research ofislerinde geliştirildi. Şu an Microsoft ve gönüllü katkıda bulunanların oluşturduğu F# Software Foundation tarafından geliştirilmeye devam eden F# Programlama, Microsoft’un uygulama geliştirme platformu .Net Framework üzerinde çalışmaktadır.
►İlginizi Çekebilir: Portlar ve Programlama Dilleri
Diğer popüler fonksiyonel programlama dillerinden başta ML olmak üzere Haskell Ocaml ve Lisp dillerinin içeriği, kullanım yapıları ve gereklilikleri F# dilinin içerisine çalışmasına zarar vermeyecek şekilde eklenmiştir. Ayrıca F# .NET dilinin gücünü de diğer dillerle birlikte bünyesine katmıştır. F#, karmaşık fonksiyonların çözüm yöntemlerine getirdiği yaklaşımların çabukluğu açısından fonksiyonel programlamaya benzemesi ile birlikte günümüzün en iyi mimarisi olarak kabul edilen nesne tabanlı programlama tekniğini de problem çözümlerinde kullanabilmesi iyi kabul edilebilecek yaklaşımlarıdır. F# oluşurken yararlandığı ilk yapı .NET yapısı olmuştur. .NET‘in temel sınıf kütüphanelerini kullanan F#, Base Class Library (BCL)’yi kullanmıştır. Ayrıca .NET bünyesinde bulunup da temel olarak kullanılan dillerde C# ve Visual Basic’dir.
►İlginizi Çekebilir: Allegro Kütüphaneleri |Microsoft Visual C++ 2010
F#‘ın nesnesel modelleri oluşturulurken ise OCaml’i nesnesel programlama mimarisine aykırı olmayacak biçimde kullanılmaya çalışılmıştır. Derleme işlemleri için kullanılan mimaride Common Language Infrastructure (CLI)‘dır. Not defteri vb. programlarda yazılabilen F# dili, Microsoft’un uygulama geliştirme platformu Visual Studio’da da kullanılabilir, projeler üretilebilir. Ayrıca Microsoft Research tarafından kullanıcıların hizmetine açılan “Try F#” sitesi ile de hem F# dilini öğrenebilir, hem de örnek uygulamalar geliştirebilirsiniz.
F# Uygulama Örnekleri
► Giriş olarak “Hello World” yazmayı unutmuyoruz tabi ki:
► Bir Fibonacci örneği:
► Bir Windows uygulama örneği:
► Çeşitli sayısal tipler arası dönüşüm örneği :
► Başka bir fonksiyondan fonksiyon çağırma:
Yukarıdaki basit örneklerde gördüldüğü gibi kısa fonksiyon belirlemeler, tekrarlamalar ve çağırmalarla özellikle matematiksel işlemler daha pratik bir şekilde yapılabilir.
F#’ı Kimler Kullanmalı?
Finansal hesaplamalar ve işlemler, matematiksel işlemler ve matematik fonksiyonlar ile yapılacak işlemler, F# ile daha iyi performans alınarak yapılabilir. Ayrıca oldukça büyük verilerle veya Matlab’de olduğu gibi matrisler ile matematiksel işlemleri yapmak istiyorsak yine F# ile çalışmamız daha faydalı olacaktır. Çünkü fonksiyonel programlama dilinin mimari yapısından ötürü F# ile yapacağımız karmaşık işlemlerin çözüm süresi oldukça kısalacaktır. Ayrıca .NET 4.0 gelişimlerinde matematik fonksiyonlarının daha ayrıntılı bir biçimde çözümlenebilmesi içinde Linear Algebra sınıflarının geliştirildiği bilinmektedir. Bu gelişimler esnasında yararlanılan yöntem yine fonksiyonel programlama teknikleridir.
►İlginizi Çekebilir: Elektrik-Elektronik Mühendisliğinde Bilgisayar Programları
F# Eğitim Platformları
F# programlama ile ilgili daha fazla içerik, kaynak kod ve eğitim materyalleri için aşağıdaki sitelere göz gezdirebilirsiniz:
► F# Software Foundation
► Codeplex
► Microsoft MSDN
► Try F#
Kaynak:
► İTÜ BİDB,
► Techopedia
► Haskell.org
► Microsoft MSDN
► F# Software Foundation
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET