Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 2.25 KB

demetler.md

File metadata and controls

42 lines (34 loc) · 2.25 KB

Demetler

Bu yapıya demet dediğim için belki tanıyamayanlar olabilir ama bildiğimiz tuples tipinden bahsedeceğim. Erlang içerisinde demetler {Eleman1, Eleman2, ... , ElemanN} formunda tanımlanırlar.

1> Yukseklik = 190, Genislik = 30.
30
2> Ebat = {Yukseklik, Genislik}.
{190,30}
3> Ebat = {190, 30}.
{190,30}
4> Ebat = {190, 40}.
** exception error: no match of right hand side value {190,40}

1> satırında öncelikle Yukseklik ve Genislik isimli değişmezlerimize 190 ve 30 değerlerini atadık. Daha sonra 2> satırında Ebat isminde bir demet oluşturduk. En başta bahsettiğim forma gayet uygun. Gerçekten eşit olup olmadığını da 3> satırındaki kontrolun sonucundan anlayabiliriz. Farklı bir değer ile kontrol etmeye çalışırsak alacağımız hata da 4> satırında yer alıyor.

5> {X, _} = Ebat.
{190,30}
6> X.
190

5> satırında değişmezler kısmında bahsettiğim boş işler bakanı _ ile çok güzel bir pattern matching yapıyoruz. X isimli değişkene Ebat demetinin ilk elemanını atıyoruz ve ikinci eleman ile ilgilenmediğimizi _ kullanarak belirtiyoruz. Gerçekten bu elemanın X içerisine girip girmediğini 6> satırındaki kontrolümüz ile anlayabiliriz.

Demet veri yapısı diğer türlerden biraz daha farklıdır. Çünkü bu yapı ile yeni yapılar türetebiliriz. Aynı C dilinde yer alan struct misali demetleri kullanabiliriz.

7> Mehmet = {{isim, "mehmet"}, {yas, 20}, {boy, 160}, {kilo, 55}}.
{{isim,"mehmet"},{yas,20},{boy,160},{kilo,55}}
8> {{_, _}, {_, MehmetinYasi}, {_, MehmetinBoyu}, {_, MehmetinKilosu}} = Mehmet.
{{isim,"mehmet"},{yas,20},{boy,160},{kilo,55}}
9> MehmetinYasi.
20
10> MehmetinBoyu.
160
11> MehmetinKilosu.
55

Yukarıdaki kod parçasında öncelikle Mehmet isminde bir adet iç içe demet yapısı oluşturduk. Burada yer alan yas yapısının bir atom olduğu ve yanında da 20 sayısını taşıdığını görebilirsiniz. Bu şekilde birçok veriyi tek bir yapı altında toplamış olduk. 8> satırında da bu yapı içerisinden bazı yapıları değişmezlere çıkardık. MehmetinYasi, MehmetinBoyu, MehmetinKilosu yapılarının birer değişmez olduğunu baş harfinin büyük olmasından anlamış olmalısınız.