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ı 18306 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
- NA8 Serisi Açık Tip Şalter Kurulum Kılavuzu | Chint Turkiye
- NKG3 Dijital Zaman Saati Kurulum Kılavuzu | Chint Türkiye
- NXU Serisi Parafudr Kurulum Kılavuzu | Chint Türkiye
- CJ19 Kondansatör Kontaktörü Kurulum Kılavuzu | Chint Turkiye
- NXZM Serisi Otomatik Transfer Şalterleri Kurulum Kılavuzu | Chint Türkiye
- Nasıl Dönüşür | İleri Dönüşüm
- Nasıl Dönüşür | Çevresel Etki
- Nasıl Dönüşür | Ekolojik Ayak İzi
- Motor Testinin Temelleri | Megger Türkiye | Webinar
- Webinar I Büyüyen Veri, Artan Güç: Sürdürülebilir Çözümler
ANKET