diff --git a/F#/EvenNumbers.Test/EvenNumbers.Test.fsproj b/F#/EvenNumbers.Test/EvenNumbers.Test.fsproj
new file mode 100644
index 0000000..9eb6853
--- /dev/null
+++ b/F#/EvenNumbers.Test/EvenNumbers.Test.fsproj
@@ -0,0 +1,30 @@
+
+
+
+ net8.0
+
+ false
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/F#/EvenNumbers.Test/EvenNumbersTest.fs b/F#/EvenNumbers.Test/EvenNumbersTest.fs
new file mode 100644
index 0000000..dded2d5
--- /dev/null
+++ b/F#/EvenNumbers.Test/EvenNumbersTest.fs
@@ -0,0 +1,28 @@
+module EvenNumbers.Test
+
+open NUnit.Framework
+open FsUnit
+open FsCheck
+
+let mapEqualsFold (list: list) = mapEvenCounter list = foldEvenCounter list
+let mapEqualsFilter (list: list) = mapEvenCounter list = filterEvenCounter list
+
+[]
+let mapEqualsFilterTest () =
+ Check.QuickThrowOnFailure mapEqualsFilter
+
+[]
+let mapEqualsFoldTest () =
+ Check.QuickThrowOnFailure mapEqualsFold
+
+[]
+let mapEmptyTest () =
+ [] |> mapEvenCounter |> should equal 0
+
+[]
+let mapRepetedTest () =
+ [ 0u; 0u; 1u; 1u; ] |> mapEvenCounter |> should equal 2
+
+[]
+let mapNoneEvenTest () =
+ [ 1u; 1u; ] |> mapEvenCounter |> should equal 0
diff --git a/F#/EvenNumbers/EvenNumbers.fs b/F#/EvenNumbers/EvenNumbers.fs
new file mode 100644
index 0000000..196b031
--- /dev/null
+++ b/F#/EvenNumbers/EvenNumbers.fs
@@ -0,0 +1,10 @@
+module EvenNumbers
+
+let foldEvenCounter list =
+ list |> List.fold (fun acc x -> acc + ((x + 1u) % 2u)) 0u
+
+let filterEvenCounter list =
+ list |> List.filter (fun x -> (x % 2u) = 0u) |> List.length |> uint32
+
+let mapEvenCounter list =
+ list |> List.map (fun x -> (x + 1u) % 2u) |> List.sum
diff --git a/F#/EvenNumbers/EvenNumbers.fsproj b/F#/EvenNumbers/EvenNumbers.fsproj
new file mode 100644
index 0000000..165becd
--- /dev/null
+++ b/F#/EvenNumbers/EvenNumbers.fsproj
@@ -0,0 +1,12 @@
+
+
+
+ net8.0
+ true
+
+
+
+
+
+
+
diff --git a/F#/forSpbu.sln b/F#/forSpbu.sln
index 9d54d03..0cb77e4 100644
--- a/F#/forSpbu.sln
+++ b/F#/forSpbu.sln
@@ -17,10 +17,12 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PriorityQueue", "PriorityQu
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PriorityQueue.Test", "PriorityQueue.Test\PriorityQueue.Test.fsproj", "{89A935E8-B5F3-435D-ACC3-A99DD7C66178}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "07.03", "07.03", "{5CA9053B-DE9B-4824-9F19-AEB464E3B9D8}"
-EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Homework1", "Homework1\Homework1.fsproj", "{04B15EE4-079A-42ED-ACC8-E2DCD25281C6}"
EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "EvenNumbers", "EvenNumbers\EvenNumbers.fsproj", "{A0D24020-05AF-4EB7-912D-75EA330F5192}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "EvenNumbers.Test", "EvenNumbers.Test\EvenNumbers.Test.fsproj", "{E5CF604F-7661-4732-93F7-73B0D5F3FC49}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -58,6 +60,14 @@ Global
{89A935E8-B5F3-435D-ACC3-A99DD7C66178}.Debug|Any CPU.Build.0 = Debug|Any CPU
{89A935E8-B5F3-435D-ACC3-A99DD7C66178}.Release|Any CPU.ActiveCfg = Release|Any CPU
{89A935E8-B5F3-435D-ACC3-A99DD7C66178}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A0D24020-05AF-4EB7-912D-75EA330F5192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0D24020-05AF-4EB7-912D-75EA330F5192}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A0D24020-05AF-4EB7-912D-75EA330F5192}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A0D24020-05AF-4EB7-912D-75EA330F5192}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E5CF604F-7661-4732-93F7-73B0D5F3FC49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E5CF604F-7661-4732-93F7-73B0D5F3FC49}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E5CF604F-7661-4732-93F7-73B0D5F3FC49}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E5CF604F-7661-4732-93F7-73B0D5F3FC49}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{7937CDA8-8285-4E23-AD1A-FC0F04FEEFE6} = {91E3BDA2-0836-46C2-95F0-02513FD7F13F}