際際滷

際際滷Share a Scribd company logo
FONKS聴YONEL
PARAD聴GMA
#direnstate
#nedirtv
muhammed cuma tahirolu
@devmucit
18 ekim 2014
Fonksiyonel paradigma
?
1950
model
Akademi > End端stri
FONKS聴YONEL PROGRAMLAMA KONSEPTLER聴
IMMUTABILITY
REFERENTIAL TRANSPARENCY
CURRYING IDEMPOTENCE
SIDE-EFFECT
LAZY EVALUATION
RECURSION
PATTERN MATCHING
OOP:
ABSTRACTION
ENCAPSULATION
Nesne Y旦nelimli Programlama, hareketli
par巽alar脹 enkaps端le ederek kodu anla脹l脹r
k脹l脹yor. Fonksiyonel Programlama ise hareketli
par巽alar脹 en aza indirgeyerek kodu anla脹l脹r
k脹l脹yor.
 Michael Feathers
Fonksiyonel paradigma
Fonksiyonel paradigma
Fonksiyonel paradigma
SIDE EFFECT
S T A T
E
M U T A B L E
FP
STATE
Variable
Deiken
t
1;
var x = 1;
x = x + 1;
聴lgin巽 bir anekdot
250 sayfa boyunca atama (assignment) yok!
Fonksiyonel paradigma
y = f(x)
AssertEquals(f(x), f(x));
f(x) = f(x)
string
束IMMUTABLE損 SINIFLARIN EFEND聴S聴
Fonksiyonel paradigma
KODA GEL
https://www.flickr.com/photos/norfolkodyssey/3863851867
MAP
C# 3.0
MAP
C# 3.0
FILTER
C# 3.0
FILTER
C# 3.0
REDUCE
C# 3.0
REDUCE
C# 3.0
STRATEGY PATTERN
珂或意聴閣粥皆額或鰻
Unit Test yazmak,
fonksiyonel programlamay脹
fonksiyonel olmayan dillerde
yeniden icat etmektir
As脹l problem,
束stateful損 programlar脹n b端y端d端k巽e
iyi olmayan bir y旦ne doru evrilmesidir.
Gerektiinde imperative programlay脹n;
m端mk端n olduunda ise fonksiyonel.
YAZMASI VE BAKIM YAPMASI DAHA BAS聴T
DAHAAZ 束CONCURRENCY損 SORUNU
束TEMPORAL COUPLING損 YOK
束STATE NED聴R?損 D聴YE SORMAK YOK
#direnstate
HAFIZA KULLANIMI
Fonksiyonel paradigma
Fonksiyonel paradigma
8 byte vs 8 Gb
MULTI-CORE COMPUTING (PARALEL PROGRAMLAMA)
Fonksiyonel paradigma
AssertEquals(f(x), f(x));
ekirdek - 1
ekirdek - 2
Fonksiyonel paradigma
FONKS聴YONEL D聴LLER
Clojure (Lisp)
ML
F#
2002de Microsoft Research 霞温霞脹稼鉛温糸脹
Fonksiyonel paradigma
MARTIN ODERSKY
Fonksiyonel paradigma
Fonksiyonel paradigma
Fonksiyonel paradigma
C# Java (8)
FONKS聴YONEL OLANLA OLMAYAN MODLLER聴 AYIRIN
Fonksiyonel paradigma
束聴yi bir yaz脹l脹m m端hendisi olmak i巽in en uygun
teknikleri bulup bir denge salamak gerekir.
Ayr脹ca teknik olmayan yanlar ve hedefler de var.
Mesela kodun her ekip eleman脹 taraf脹ndan
anla脹labilmesi gibi.
Doru olan, en verimli yakla脹m hedeflerini net
olarak belirleyerek, teknikleri o ama巽la tutarl脹
bir ekilde kullanmaktir bence. Yoksa mesela
her For d旦ng端s端n端 Map'e 巽evirdiinizde
kodunuzun kalitesi artmaz; d端ebilir bile.損
BURAK EM聴R
Google - 聴svi巽re
Fonksiyonel paradigma
TEEKKRLER
@devmucit
FONKS聴YONEL PARAD聴GMA
muhammed cuma tahirolu
tahiroglu.com
#nedirtv

More Related Content

Fonksiyonel paradigma

Editor's Notes

  1. Neden fonksiyonel programlamadan bahsedeceiz Biraz tarih巽e Konseptler genel bak脹 OOPun faydas脹 Side-effect kavram脹 Aforizmalar Kod 旦rnekleri Burak Ekinden mesaj Diller - kaynaklar
  2. Gelien programlama stillerini az 巽ok biliyoruz. End端strimizin u an bulduu en yayg脹n 巽旦z端m Object Oriented. Kurumsal Uygulamalar脹n tamam脹 object oriented ortamlarda yaz脹l脹yor. Peki Functional programlamadan d端nya uzaklam脹ken, neden bu ak tekrar hortlad脹?
  3. Peki nereden geldi birden bire bu fonksiyonel ak脹? Moda gibi s脹k脹l脹nca deitirmek istediimizden mi? Yoksa bir eyi yanl脹 biliyorduk da yeni mi dorusunu anlad脹k Bir ilham m脹 geldi bir yerlerden artlar olarak deien ne? Bu sunumda, fonksiyonel programlaman脹n OOP programc脹lar脹 i巽in ilgin巽 olan deerlerine bakaca脹z Ve neden imdi bunlar脹n pop端lerletiini sorgulamaya 巽al脹aca脹z Kendi tecr端belerimizden de 旦rnekler vereceiz
  4. OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts. Michael Feathers
  5. Fonksiyonel programlama howdan 巽ok what脹 anlat脹yor
  6. - Ve en 旦nemlisi, bir fonksiyonun 巽脹kt脹s脹, dier fonksiyonun girdisi olabilir
  7. IP baz脹nda balant脹 say脹s脹
  8. imdi FPnin biizm i巽in anlaml脹 olan prensiplerinden bahsedelim SIDE EFFECT nedir?
  9. imdi biraz fonksiyonel programlaman脹n OOP i巽in anlam ifade eden temel konseptlerine bakal脹m State, durum olan state, fonksiyonel paradigmada kritik bir alan, sorunlu. Statein t端m端ne elbette bir d端manl脹k yok. zelde, mutable statee, yani deimeye kar脹 bir diren巽 var. Fonksiyonel programlama, moving part s旦z端nden de hat脹rlayaca脹n脹z gibi kendini deien, k脹m脹ldayan, ayran g旦n端ll端 yap脹lardan uzak k脹lmaya 巽al脹脹yor. Bu y端zden de s脹kl脹kla
  10. Enemy of the state filmine at脹f yaparlar.
  11. PEK聴 imdi statein nas脹l olutuuna bakal脹m m脹?
  12. Immutable nesneler daha basit, tek state tutuyorsun, yarat脹ld脹脹 statede duruyor Ve doal olarak senkronizasyon gerektirmiyor, thread-safe