Aslinda en onemli 2 kismundan birini cozmussun. Imutabality kismi tamam. Fonksiyonlarin yan etkisi olmamasi sebebiyle calisma sirasinin onemsiz olusu ve kolayca parallel calisabilmesi.
Diger kisim ise fonksiyonlarin 1.sinif vatandas olmasi. Yani array, integer, object ten farkinin olmamasi. Bunu biraz acmak gerekirse; fonksiyonlar parametre olarak nasil object, integer vs aliyorsa fonksiyon da alabiliyorlar.
Bunlar nasil bir degiskene ya da sabite atanabiliyorsa fonksiyonlar da degisken ve ya sabite atanabiliyor.Bunlar nasil bir fonksiyonun icinde tanimlanabiliyorsa, fonksiyonlar da ayni sekilde fonksiyonlarin icinde tanimlanabiliyor.Ve en guclusu, bunlar nasil fonksiyonlarin donus degeri oluyorsa, fonksiyonlardan fonksiyon donebiliyor.
Bunlarin hepsi fonksiyonlarin 1. Sinif olmasi sayesinde oluyor. İlk asamada bu cok da onemli bir ozellik gibi gozukmeyecek belki sana. Nesne dayali programlama dunyasindan geliyorsan, soyutlamayi simof ve nesnelerle yapmaya alismissindir.
Bir programi cumle olarak dusunursek(ozne nesne yuklem), oop bize ozne/nesneler uzerinden soyutlama imkani yapmayi imkani veriyor.Fonksiyonel programla ile bu soyutlamayi yuklemler uzerinden yapiyoruz. Bir programi is yapan bir alet olarak dusunursek, yapilan soyutlama yuklem(yapilan is) uzerinden oldugu icin cok daha guclu oluyor.
Guclu soyutlamalar daha az kod yazmamizi sagliyor. Daha az kod daha az bug demek.
Daha az bug ise daha az dert demek. Daha az dert ise daha mutlu programci demek.
İlk fonksiyon alan fonksiyonunu yazdigin gun, daha mutlu programci olma yolunda ilk adimini atmis olursun.(Havalı cümle ile maili bitirdim)
Kolay gelsin.
Not: sirketin adini paylasabilirsen cok sevinirm. Türkiye'de fonksiyonel programlama kullanan şirketleri bilmek bizim için faydalı oluyor.
--
Bu e-postayı Google Grupları'ndaki "Scala Türkiye" adlı gruba abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için scala-turkiy...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
soyutlamayi simof ve nesnelerle yapmaya alismissindir.
Aynı soru bana da dün akşam mesajla geldi, boşluğuma gelmiş 12 mesajlık aşağıdaki cevabı yazmışım :)
Bir programi cumle olarak dusunursek(ozne nesne yuklem), oop bize ozne/nesneler uzerinden soyutlama imkani yapmayi imkani veriyor.Fonksiyonel programla ile bu soyutlamayi yuklemler uzerinden yapiyoruz. Bir programi is yapan bir alet olarak dusunursek, yapilan soyutlama yuklem(yapilan is) uzerinden oldugu icin cok daha guclu oluyor.
Cay.ic()
Ic(Cay)
OOP da çay içeceksen:
Cay.ic()
FP de çay içeceksen:Ic(Cay)