@@ -88,56 +88,39 @@ Prelude> add2 10
88
88
## Function Composition
89
89
90
90
İki farklı fonksiyonu bir araya getirerek, bir fonksiyonun çıktısı diğer fonksiyonun girdisi olan üçüncü bir fonksiyon oluşturmaktır.
91
- ``` js
92
- const compose = (f , g ) => (a ) => f (g (a)) // Definition
93
- const floorAndToString = compose ((val ) => val .toString (), Math .floor ) // Usage
94
- floorAndToString (121.212121 ) // '121'
91
+ ``` haskell
92
+ -- fonksiyonları bir araya getirmek için '.' operatörü kullanılır
93
+ Prelude > let floorAndToString = show . floor
94
+ Prelude > floorAndToString 32.123
95
+ " 32"
95
96
```
96
97
97
98
## Purity
98
99
99
100
Bir fonksiyonun çıktısı sadece girdi veya girdilerine bağlı ve fonksiyon yan etki oluşturmuyor ise, fonksiyon _ saftır_ denir.
100
101
101
- ``` js
102
- const greet = ( name ) => ` Hi, ${ name} `
103
-
104
- greet ( ' Brianne ' ) // 'Hi, Brianne'
102
+ ``` haskell
103
+ Prelude > let greet name = " Hello " ++ name
104
+ Prelude > greet " Brianne "
105
+ " Hello Brianne"
105
106
```
106
107
107
108
Saf olmayan fonksiyona bir örnek:
108
109
109
- ``` js
110
- window .name = ' Brianne'
111
-
112
- const greet = () => ` Hi, ${ window .name } `
113
-
114
- greet () // "Hi, Brianne"
110
+ ``` haskell
111
+ Prelude > let name1 = " Brianne"
112
+ Prelude > let greet = " Hello " ++ name1
113
+ Prelude > greet
114
+ " Hello Brianne"
115
115
```
116
116
117
117
Yukarıdaki fonksiyonun çıktısı fonksiyonun dışarısında tanımlı bir değişkene bağlıdır.
118
- ``` js
119
- let greeting
120
-
121
- const greet = (name ) => {
122
- greeting = ` Hi, ${ name} `
123
- }
124
-
125
- greet (' Brianne' )
126
- greeting // "Hi, Brianne"
127
- ```
128
- Bu fonksiyon ise, fonksiyonun dışarısında tanımlanan bir değişkeni değiştirmektedir (yani saf değildir).
129
118
130
119
## Side effects
131
120
132
121
Bir fonksiyon veya ifade, dışarısındaki bir durum ile etkileşime geçiyor ise (okuma veya yazma), _ yan etki_ ye sahiptir denir.
133
122
134
- ``` js
135
- const differentEveryTime = new Date ()
136
- ```
137
-
138
- ``` js
139
- console .log (' IO is a side effect!' )
140
- ```
123
+ Haskell'deki tüm fonksiyonlar saftır.
141
124
142
125
## Idempotent
143
126
@@ -147,12 +130,14 @@ Bir fonksiyon, sonucuna tekrar uygulandığında sonuç değişmiyorsa _idempote
147
130
f(f(x)) ≍ f(x)
148
131
```
149
132
150
- ``` js
151
- Math .abs (Math .abs (10 ))
133
+ ``` haskell
134
+ Prelude > abs (abs (- 1 ))
135
+ 1
152
136
```
153
137
154
- ``` js
155
- sort (sort (sort ([2 , 1 ])))
138
+ ``` haskell
139
+ Prelude Data. List> sort (sort [1 ,4 ,3 ,1 ,5 ])
140
+ [1 ,1 ,3 ,4 ,5 ]
156
141
```
157
142
158
143
## Point-Free Style
0 commit comments