Haskell - İşlevler Hakkında Daha Fazla Bilgi

Şimdiye kadar, birçok Haskell işlevi türünü tartıştık ve bu işlevleri çağırmak için farklı yollar kullandık. Bu bölümde, herhangi bir özel Type sınıfını içe aktarmadan Haskell'de kolayca kullanılabilecek bazı temel işlevleri öğreneceğiz. Bu işlevlerin çoğu, diğer üst düzey işlevlerin bir parçasıdır.

Baş Fonksiyonu

Headişlevi bir Listede çalışır. Temelde bir liste olan giriş bağımsız değişkeninin ilkini döndürür. Aşağıdaki örnekte, 10 değerli bir liste geçiriyoruz ve bu listenin ilk elemanını,head işlevi.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The first element of the list is:" 
   print (head x)

Aşağıdaki çıktıyı üretecektir -

Our list is: 
[1,2,3,4,5,6,7,8,9,10]
The first element of the list is:
1

Kuyruk Fonksiyonu

Tail tamamlayan işlevdir headişlevi. Alırlistgirdi olarak ve baş kısmı olmadan tüm listeyi verir. Bu,tailişlevi, ilk öğe olmadan tüm listeyi döndürür. Aşağıdaki örneğe bir göz atın -

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The tail of our list is:" 
   print (tail x)

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The tail of our list is:
[2,3,4,5,6,7,8,9,10]

Son İşlev

Adından da anlaşılacağı gibi, giriş olarak sağlanan listenin son öğesini verir. Aşağıdaki örneğe bakın.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The last element of our list is:" 
   print (last x)

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The last element of our list is:
10

Başlatma İşlevi

Init tam tersi olarak çalışır tailişlevi. Bir listeyi argüman olarak alır ve son giriş olmadan tüm listeyi döndürür.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Our list without the last entry:"  
   print (init x)

Şimdi, çıktısını inceleyin -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Our list without the last entry:
[1,2,3,4,5,6,7,8,9]

Boş Fonksiyon

Null bir String üzerinde çalışan ve geri dönen bir Boolean kontrol fonksiyonudur True yalnızca verilen liste boş olduğunda, aksi takdirde geri döner False. Aşağıdaki kod, verilen listenin boş olup olmadığını kontrol eder.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Is our list empty?"  
   print (null x)

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Is our list empty?
False

Ters Fonksiyon

Bir String girdisi üzerinde çalışır ve tüm girdiyi ters sıraya dönüştürür ve sonuç olarak bir çıktı verir. Bu işlevin kod tabanı aşağıdadır.

main = do 
   let x = [1..10]  
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The list in Reverse Order is:" 
   print (reverse x)

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The list in Reverse Order is:
[10,9,8,7,6,5,4,3,2,1]

Uzunluk Fonksiyonu

Bu fonksiyon, ürünün uzunluğunu hesaplamak için kullanılır. listargüman olarak verilir. Aşağıdaki örneğe bir göz atın -

main = do 
   let x = [1..10]   
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The length of this list is:" 
   print (length x)

Listemizde 10 eleman var, bu nedenle kodumuz çıktı olarak 10 verecek.

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The length of this list is:
10

İşlevi Al

Takeişlevi, başka bir String'den bir alt dizge oluşturmak için kullanılır. Aşağıdaki kod, Haskell'de take işlevini nasıl kullanabileceğinizi gösterir -

main = print(take 5 ([1 .. 10]))

Kod, sağlanan listeden 5 öğe içeren bir alt dize oluşturur -

[1,2,3,4,5]

Drop Fonksiyonu

Bu işlev ayrıca bir alt dizge oluşturmak için kullanılır. Tersi olarak işlev görürtakeişlevi. Aşağıdaki kod parçasına bakın -

main = print(drop 5 ([1 .. 10]))

Kod, verilen listeden ilk 5 öğeyi çıkarır ve kalan 5 öğeyi yazdırır. Aşağıdaki çıktıyı üretecektir -

[6,7,8,9,10]

Maksimum İşlev

Bu fonksiyon, verilen listeden maksimum değere sahip elemanı bulmak için kullanılır. Uygulamada nasıl kullanılacağını görelim -

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The maximum value element of the list is:"  
   print (maximum x)

Yukarıdaki kod parçası aşağıdaki çıktıyı üretecektir -

The maximum value element of the list is:
1245

Minimum Fonksiyon

Bu fonksiyon, sağlanan listeden minimum değere sahip elemanı bulmak için kullanılır. Tam tersimaximum işlevi.

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The minimum value element of the list is:"  
   print (minimum x)

Yukarıdaki kodun çıktısı -

The minimum value element of the list is:
1

Toplam İşlevi

Adından da anlaşılacağı gibi, bu işlev sağlanan listede bulunan tüm öğelerin toplamını döndürür. Aşağıdaki kod, 5 öğenin bir listesini alır ve bunların toplamını çıktı olarak döndürür.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The summation of the list elements is:" 
   print (sum x)

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5]
The summation of the list elements is:
15

Ürün Fonksiyonu

Bu işlevi, bir listedeki tüm öğeleri çoğaltmak ve değerini yazdırmak için kullanabilirsiniz.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The multiplication of the list elements is:" 
   print (product x)

Kodumuz aşağıdaki çıktıyı üretecektir -

Our list is:
[1,2,3,4,5]
The multiplication of the list elements is: 
120

Elem İşlevi

Bu işlev, sağlanan listenin belirli bir öğe içerip içermediğini kontrol etmek için kullanılır. Buna göre, ya birtrue veya a false.

Aşağıdaki kod, sağlanan öğe listesinin 786 değerini içerip içermediğini kontrol eder.

main = do 
   let x = [1,45,155,1785] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "Does it contain 786?" 
   print (elem 786 (x))

Aşağıdaki çıktıyı üretecektir -

Our list is:
[1,45,155,1785]
Does it contain 786?
False

Sağlanan listenin 1785 değerini içerip içermediğini kontrol etmek için aynı kodu kullanın.