<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Rust-Programming-Language%2FC2%2FIterators-and-Closures%2FEnglish</id>
		<title>Rust-Programming-Language/C2/Iterators-and-Closures/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Rust-Programming-Language%2FC2%2FIterators-and-Closures%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;action=history"/>
		<updated>2026-05-13T00:02:16Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57195&amp;oldid=prev</id>
		<title>Madhurig at 07:43, 21 October 2025</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57195&amp;oldid=prev"/>
				<updated>2025-10-21T07:43:32Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;amp;diff=57195&amp;amp;oldid=57182&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Madhurig</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57182&amp;oldid=prev</id>
		<title>Nirmala Venkat at 13:14, 13 October 2025</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57182&amp;oldid=prev"/>
				<updated>2025-10-13T13:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:14, 13 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|| &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|| &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The following code file is required to practise this tutorial.&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The following code file is required to practise this tutorial.&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;iterators.rs&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;iterators.rs&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;This file is provided in the Code Files link of this tutorial page.&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;This file is provided in the Code Files link of this tutorial page.&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57181&amp;oldid=prev</id>
		<title>Nirmala Venkat: Created page with &quot;{| border=&quot;1&quot; |- || '''Visual Cue''' || '''Narration''' |- || '''Slide 1''' || Welcome to the Spoken Tutorial on '''Iterators and Closures''' in''' Rust.''' |- style=&quot;border:1...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Iterators-and-Closures/English&amp;diff=57181&amp;oldid=prev"/>
				<updated>2025-10-13T13:13:17Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| border=&amp;quot;1&amp;quot; |- || &amp;#039;&amp;#039;&amp;#039;Visual Cue&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Narration&amp;#039;&amp;#039;&amp;#039; |- || &amp;#039;&amp;#039;&amp;#039;Slide 1&amp;#039;&amp;#039;&amp;#039; || Welcome to the Spoken Tutorial on &amp;#039;&amp;#039;&amp;#039;Iterators and Closures&amp;#039;&amp;#039;&amp;#039; in&amp;#039;&amp;#039;&amp;#039; Rust.&amp;#039;&amp;#039;&amp;#039; |- style=&amp;quot;border:1...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|| '''Visual Cue'''&lt;br /&gt;
|| '''Narration'''&lt;br /&gt;
|-&lt;br /&gt;
|| '''Slide 1'''&lt;br /&gt;
|| Welcome to the Spoken Tutorial on '''Iterators and Closures''' in''' Rust.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 2'''&lt;br /&gt;
&lt;br /&gt;
'''Learning Objectives'''&lt;br /&gt;
|| In this tutorial, we will learn about:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Iterators &amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Types of Iterators&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Closures&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 3'''&lt;br /&gt;
&lt;br /&gt;
'''System Requirements'''&lt;br /&gt;
To record this tutorial I’m using&lt;br /&gt;
&lt;br /&gt;
|| To record this tutorial I’m using the following setup.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide''' '''5'''&lt;br /&gt;
&lt;br /&gt;
'''Code Files'''&lt;br /&gt;
|| &lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The following code file is required to practise this tutorial.&amp;lt;/div&amp;gt;&lt;br /&gt;
* * &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;iterators.rs&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;This file is provided in the Code Files link of this tutorial page.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 6:'''&lt;br /&gt;
&lt;br /&gt;
'''Iterators'''&lt;br /&gt;
&lt;br /&gt;
|| Let us get started.&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Iterators are powerful and flexible tools.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;They process sequences of data one at a time.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;They help to iterate over a collection of values such as arrays, vectors, maps, etc.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 7:'''&lt;br /&gt;
&lt;br /&gt;
'''Type of Iterators'''&lt;br /&gt;
&lt;br /&gt;
|| In Rust we can categorize iterators into 3 main types.&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Basic &amp;amp; Range Iterators '''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Iterator Adapters '''and&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Iterator Consumers/Collectors'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
Let’s learn about '''Basic and Range Iterators''' with an example.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Open '''Visual''' '''code editor'''&lt;br /&gt;
|| Open the '''Visual Studio code editor.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| In the menu bar, click on '''Terminal''' and select''' New Terminal'''.&lt;br /&gt;
&lt;br /&gt;
|| In the menu bar, click on '''Terminal''' and select''' New Terminal'''.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| I have created the '''filehandling''' project as explained earlier.&lt;br /&gt;
|| Let us go to our working directory '''MyRustProject''' as explained earlier.&lt;br /&gt;
&lt;br /&gt;
Type the command '''cargo new iterators '''and press '''Enter.'''&lt;br /&gt;
&lt;br /&gt;
Open the created project as shown.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Point to the '''main.rs''' file.&lt;br /&gt;
&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;In the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''main.rs '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;file, copy and paste the code from the Code file.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| fn main() {&lt;br /&gt;
&lt;br /&gt;
let numbers = vec![1, 2, 3];&lt;br /&gt;
&lt;br /&gt;
let mut iter = numbers.iter();&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, iter.next()); // Some(1)&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, iter.next()); // Some(2)&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, iter.next()); // Some(3)&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, iter.next()); // None&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|| We declared a '''vector''' called '''numbers''' with values 1, 2, 3.&lt;br /&gt;
&lt;br /&gt;
'''numbers.iter() method '''creates an iterator named '''iter.'''&lt;br /&gt;
&lt;br /&gt;
'''iterator '''can safely access vector elements without looping.&lt;br /&gt;
&lt;br /&gt;
'''next()''' method is used to traverse through the items. &lt;br /&gt;
&lt;br /&gt;
It returns a value '''None''' when it reaches the end of the collection.&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Run the code to see the output.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Let’s see an example of commonly used '''iterator adapters'''.&lt;br /&gt;
&lt;br /&gt;
Clear the previous code. &lt;br /&gt;
&lt;br /&gt;
Copy paste the code from the code file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| fn main() {&lt;br /&gt;
&lt;br /&gt;
let numbers = vec![1, 2, 3, 4, 5];&lt;br /&gt;
&lt;br /&gt;
let squared: Vec&amp;lt;i32&amp;gt; = numbers&lt;br /&gt;
&lt;br /&gt;
.iter()&lt;br /&gt;
&lt;br /&gt;
.map(|x| x * x)&lt;br /&gt;
&lt;br /&gt;
.collect();&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, squared); // [1, 4, 9, 16, 25]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|| We declare a vector of integers.&lt;br /&gt;
&lt;br /&gt;
We then create an '''iterator''' using the '''.iter() '''method.&lt;br /&gt;
&lt;br /&gt;
It gives us '''immutable references''' to each element in the vector.&lt;br /&gt;
&lt;br /&gt;
'''.map() '''method uses a '''closure''' that takes each element x and returns &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;its &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;square&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This doesn't immediately compute the &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;square&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It builds a new iterator pipeline that knows how to compute them when needed. &lt;br /&gt;
&lt;br /&gt;
Finally, '''.collect() '''consumes the iterator and gathers the squares into a&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;new &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Run the code to see the output.&lt;br /&gt;
&lt;br /&gt;
The result is printed as a &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;new vector [1&amp;lt;/span&amp;gt;, 4, 9, 16, 25]&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Let’s see an example of '''Iterator Consumers '''or''' Collectors.''' &lt;br /&gt;
&lt;br /&gt;
These methods consume an iterator and return results like '''Vec, bool''', or a single value.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Copy and paste the code from the code file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| fn main() {&lt;br /&gt;
&lt;br /&gt;
let numbers = vec![1, 2, 3, 4, 5, 6];&lt;br /&gt;
&lt;br /&gt;
let evens: Vec&amp;lt;_&amp;gt; = numbers&lt;br /&gt;
&lt;br /&gt;
.iter()&lt;br /&gt;
&lt;br /&gt;
.filter(|x| *x % 2 == 0)&lt;br /&gt;
&lt;br /&gt;
.collect();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, evens); // [2, 4, 6]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
|| This program shows how to use '''iterators '''with filters to show only even numbers from a vector.&lt;br /&gt;
&lt;br /&gt;
Filter() method which takes a closure that returns true or false for each element.&lt;br /&gt;
&lt;br /&gt;
The condition that we’ve used here will check if the number is even or not.&lt;br /&gt;
&lt;br /&gt;
Only the elements that satisfy this condition are passed forward in the iterator pipeline.&lt;br /&gt;
&lt;br /&gt;
Lastly, .collect() method gathers the remaining elements into new '''vector evens'''.&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| In the terminal, type '''cargo run '''and see the output.&lt;br /&gt;
&lt;br /&gt;
The result is [2, 4, 6], it contains only even numbers from the original list.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 6:'''&lt;br /&gt;
&lt;br /&gt;
'''Closures'''&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;In Rust, closure is a function without names&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;It can capture variables from its environment, which is a key difference from regular functions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| Next we will see about '''Closures'''.&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Closure is a function without names&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;It can capture variables from its environment, which is a key difference from regular functions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Let us understand '''closures''' with an example.&lt;br /&gt;
&lt;br /&gt;
Switch back to the visual code editor.&lt;br /&gt;
&lt;br /&gt;
Clear the window and copy and paste the code from the codefile.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| fn main() {&lt;br /&gt;
&lt;br /&gt;
// define a closure and store it in a variable&lt;br /&gt;
&lt;br /&gt;
let add_one = |x: i32| x + 1;&lt;br /&gt;
&lt;br /&gt;
// call closure and store the result in a variable&lt;br /&gt;
&lt;br /&gt;
let result = add_one(2);&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;Result = {}&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
'''}'''&lt;br /&gt;
|| Here, parameters are placed between '''vertical &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;pipelines&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;We have defined a closure and binded it to the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''add_one'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt; variable. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;We then call the closure with &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''add_one(2)'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt; and bind the return value to the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;'''result'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt; variable.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Closures '''can omit''' type annotations '''and '''return types''', as Rust is capable of '''type inference'''&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Run the code to see the output.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Let us see another example for multiple statements inside a closure.&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Clear the previous code. Copy paste the code from the code file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| fn main() { &lt;br /&gt;
&lt;br /&gt;
// define a multi-line closure&lt;br /&gt;
&lt;br /&gt;
let squared_sum = |x: i32, y: i32| {&lt;br /&gt;
&lt;br /&gt;
// find the sum of two parameters&lt;br /&gt;
&lt;br /&gt;
let mut sum: i32 = x + y;&lt;br /&gt;
&lt;br /&gt;
// find the squared value of the sum&lt;br /&gt;
&lt;br /&gt;
let mut result: i32 = sum * sum;&lt;br /&gt;
&lt;br /&gt;
return result;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// call the closure&lt;br /&gt;
&lt;br /&gt;
let result = squared_sum(5, 3);&lt;br /&gt;
&lt;br /&gt;
println!(&amp;quot;Result = {}&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|| In this example, we enclose the multiple statements using curly braces {}.&lt;br /&gt;
&lt;br /&gt;
First we calculate the sum of two parameters.&lt;br /&gt;
&lt;br /&gt;
Then we find the squared value of the sum.&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| In the terminal, type '''cargo run.'''&lt;br /&gt;
&lt;br /&gt;
We can see the output as 64. &lt;br /&gt;
&lt;br /&gt;
That is the sum of 5 and 3 is 8. The squared value is 64.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| This brings us to the end of this tutorial.&lt;br /&gt;
&lt;br /&gt;
Let us summarize. &lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Slide 8&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Write a Rust program that takes a vector of integers:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
let numbers = vec![10, 15, 20, 25, 30, 35, 40];&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Using iterators, perform the following steps:&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
** &amp;lt;div style=&amp;quot;margin-left:1.905cm;margin-right:0cm;&amp;quot;&amp;gt;Filter out the numbers that are divisible by 10&amp;lt;/div&amp;gt;&lt;br /&gt;
** &amp;lt;div style=&amp;quot;margin-left:1.905cm;margin-right:0cm;&amp;quot;&amp;gt;Collect the result into a new vector.&amp;lt;/div&amp;gt;&lt;br /&gt;
** &amp;lt;div style=&amp;quot;margin-left:1.905cm;margin-right:0cm;&amp;quot;&amp;gt;Finally, print the resulting vector.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| As an assignment,&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Write a Rust program that takes a vector of integers:&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Using iterators, perform the following steps:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| '''Slide 9 Thank You'''&lt;br /&gt;
|| Thanks for joining.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:-1.588cm;margin-right:-1.429cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	</feed>