Skip to content

Commit 520d800

Browse files
committed
Added iterator function
1 parent 6446e54 commit 520d800

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

nim/fibonacci_iterator.nim

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
iterator fibonacci(times: int): int =
2+
var n = times
3+
var curr: int = 1
4+
var next: int = 1
5+
while n > 0:
6+
yield curr
7+
swap(curr, next)
8+
curr += next
9+
n -= 1
10+
11+
for num in fibonacci(10):
12+
echo num

nim/sum_of_even_squares.nim

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import std/sequtils
2+
3+
proc sumOfEvenSquares(a: seq[int]): int =
4+
let nums: seq[int] = a.filterIt(it mod 2 == 0)
5+
if nums.len == 0:
6+
return 0
7+
return nums.mapIt(it * it).foldl(a + b)
8+
9+
assert sumOfEvenSquares(@[]) == 0
10+
assert sumOfEvenSquares(@[1]) == 0
11+
assert sumOfEvenSquares(@[1,2]) == 4
12+
assert sumOfEvenSquares(@[1,2,3]) == 4
13+
assert sumOfEvenSquares(@[1,2,3,4]) == 20
14+
assert sumOfEvenSquares(@[4,6,7,2]) == 56

nim/test.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ $Error.clear()
1212
nim c "$PSScriptRoot\clockhands.nim" && . "$PSScriptRoot\clockhands.exe" |
1313
Compare-Object (Get-Content "$PSScriptRoot\..\test\clockhands_expected") |
1414
Assert-MatchTests &&
15+
nim c "$PSScriptRoot\fibonacci_iterator.nim" && . "$PSScriptRoot\fibonacci_iterator.exe" &&
1516
nim c "$PSScriptRoot\permutations.nim" && . "$PSScriptRoot\permutations.exe" I like carrots |
1617
Compare-Object (Get-Content "$PSScriptRoot\..\test\carrots_expected") |
1718
Assert-MatchTests &&
19+
nim c "$PSScriptRoot\sum_of_even_squares.nim" && . "$PSScriptRoot\sum_of_even_squares.exe" &&
1820
nim c "$PSScriptRoot\triple.nim" && . "$PSScriptRoot\triple.exe" |
1921
Compare-Object (Get-Content "$PSScriptRoot\..\test\triple_expected") |
2022
Assert-MatchTests &&

0 commit comments

Comments
 (0)