Hi Guy’s Welcome to Proto Coders Point. In this Flutter dart article let’s checkout How to calculate sum of array list, Find the smallest & largest number in a given list by using list fold method.

Dart fold Syntax

```Future<S> fold<S>(initialValue,<function>( S previous, T element ){
})```

In Flutter dart fold method, accept 2 parameters i.e. first-> initialValue & second -> a function that content 2 parameter (Previous & a element from the list). Here the previous value will be initialValue & will only change when programmer wants to & element will item from a list basically it keep changing in a loop.

Let’s Understand the Fold Method using below Examples

## 1. Calculate the Sum of List Element

In below code, The initial value will be first item from the list i.e. 3, Now in first loop value of sums = 3 and ele = 3 so 3+3=6, then in next iteration sums = 6 and ele = second item from the list i.e. 4, so 6 + 4 = 10, and then in third iteration value of sums get updated to sums = 10 and ele = next item i.e. ele = 5, so 10 + 5 = 15. like this the loop gets iterating until the end of the list item and we get addition of list as 18.

```void main(){
final numbers = [3,4,5,1,2];

final sum = numbers.fold(numbers.first,(sums,ele){

return sums + ele;
});

print(sum);  // 36
}```

## 2. Find the largest number in list using fold method

In below code, To find the greatest number from a given list. Here initialValue is the first item from the list and it automatically assumed a max i.e. the largest element, and ele = 3 that keep are changing on each iteration, In the loop we check if the max < ele, if true then max is set to ele and thus we get the largest number from the given list.

```void main(){
final numbers = [3,4,5,1,2,4,2,1,4,7,0];

final largest = numbers.fold(numbers.first,(max,ele){

if (max < ele){
max = ele;
}

return max;
});

print(largest);  // 7
}```

## 3. Find the smallest number in list using fold method

In below code, To find the lowest number from a given list. Here initialValue is the first item from the list and it automatically assumed a min i.e. the smallest element, and ele = 3 that keep are changing on each iteration, In the loop we check if the min > ele, if true then min is set to ele and thus we get the smallest number from the given list.

```void main(){
final numbers = [3,4,5,1,2,4,2,1,4,7,-1];

final smallest = numbers.fold(numbers.first,(min,ele){

if (min > ele){
min= ele;
}

return min;
});

print(smallest);  // -1
}```