From 96d18b892c3a8869b1d4905cae03f8012c0ab2e2 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Fri, 4 Mar 2022 12:25:41 +0300 Subject: [PATCH 1/7] hw 1 --- hw1/hw1/Program.fs | 41 +++++++++++++++++++++++++++++++++++++++++ hw1/hw1/hw1.fsproj | 13 +++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 hw1/hw1/Program.fs create mode 100644 hw1/hw1/hw1.fsproj diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs new file mode 100644 index 0000000..ecf3568 --- /dev/null +++ b/hw1/hw1/Program.fs @@ -0,0 +1,41 @@ +open System + +let factorial x = + if x < 0 then raise (ArgumentException"n должно быть неотрицательным") + if x = 0 then 1 else + let rec factorialCount x i acc = + if x = i then i * acc + else factorialCount x (i + 1) (acc * i) + factorialCount x 1 1 + +let fibonacci n = + if n < 0 then raise (ArgumentException"n должно быть неотрицательным") else + let rec fibonacciCount number acc1 acc2 = + if number = n then acc1 + else + fibonacciCount (number + 1) acc2 (acc1 + acc2) + fibonacciCount 0 0 1 + +let reverseList list = + if List.length list = 0 then [] else + let rec reverseListMaker list listNew = + if list = [] then listNew + else + reverseListMaker (List.tail list) ((List.head list) :: listNew) + reverseListMaker list [] + +let makeList n m = + let rec countPower n m list = + if n = m then list + else + countPower n (m - 1) (pown 2 m :: list) + countPower n (n + m) [] + +let findFirst list number = + if list = [] then raise(ArgumentException("")) else + let rec findElement list number i = + if list = [] then raise(ArgumentException("Нет такого элемента в списке")) + if List.head list = number then i + else + findElement (List.tail list) number (i + 1) + findElement list number 0 \ No newline at end of file diff --git a/hw1/hw1/hw1.fsproj b/hw1/hw1/hw1.fsproj new file mode 100644 index 0000000..761405f --- /dev/null +++ b/hw1/hw1/hw1.fsproj @@ -0,0 +1,13 @@ + + + + Exe + net6.0 + Windows + + + + + + + From 476d08d01c6fd00803d64fb1cd4c2123fc992845 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Fri, 4 Mar 2022 12:29:12 +0300 Subject: [PATCH 2/7] fix styleguide --- hw1/hw1/Program.fs | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs index ecf3568..617a5fa 100644 --- a/hw1/hw1/Program.fs +++ b/hw1/hw1/Program.fs @@ -1,41 +1,57 @@ open System let factorial x = - if x < 0 then raise (ArgumentException"n должно быть неотрицательным") - if x = 0 then 1 else + if x < 0 then + raise (ArgumentException"n должно быть неотрицательным") + if x = 0 then + 1 + else let rec factorialCount x i acc = - if x = i then i * acc - else factorialCount x (i + 1) (acc * i) + if x = i then + i * acc + else + factorialCount x (i + 1) (acc * i) factorialCount x 1 1 let fibonacci n = - if n < 0 then raise (ArgumentException"n должно быть неотрицательным") else + if n < 0 then + raise (ArgumentException"n должно быть неотрицательным") + else let rec fibonacciCount number acc1 acc2 = - if number = n then acc1 + if number = n then + acc1 else fibonacciCount (number + 1) acc2 (acc1 + acc2) fibonacciCount 0 0 1 let reverseList list = - if List.length list = 0 then [] else + if List.length list = 0 then + [] + else let rec reverseListMaker list listNew = - if list = [] then listNew + if list = [] then + listNew else reverseListMaker (List.tail list) ((List.head list) :: listNew) reverseListMaker list [] let makeList n m = let rec countPower n m list = - if n = m then list + if n = m then + list else countPower n (m - 1) (pown 2 m :: list) countPower n (n + m) [] let findFirst list number = - if list = [] then raise(ArgumentException("")) else + if list = [] then + raise(ArgumentException("")) + else let rec findElement list number i = - if list = [] then raise(ArgumentException("Нет такого элемента в списке")) - if List.head list = number then i + if list = [] then + raise(ArgumentException("Нет такого элемента в списке")) + if List.head list = number then + i else findElement (List.tail list) number (i + 1) findElement list number 0 \ No newline at end of file From fbfccf58389f531d4bad1b30b01b4f903414bdb3 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Sat, 5 Mar 2022 22:56:28 +0300 Subject: [PATCH 3/7] fix code --- hw1/hw1/Program.fs | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs index 617a5fa..7b80410 100644 --- a/hw1/hw1/Program.fs +++ b/hw1/hw1/Program.fs @@ -2,7 +2,7 @@ open System let factorial x = if x < 0 then - raise (ArgumentException"n должно быть неотрицательным") + raise (ArgumentException "n должно быть неотрицательным") if x = 0 then 1 else @@ -15,7 +15,7 @@ let factorial x = let fibonacci n = if n < 0 then - raise (ArgumentException"n должно быть неотрицательным") + raise (ArgumentException "n должно быть неотрицательным") else let rec fibonacciCount number acc1 acc2 = if number = n then @@ -25,15 +25,12 @@ let fibonacci n = fibonacciCount 0 0 1 let reverseList list = - if List.length list = 0 then - [] - else - let rec reverseListMaker list listNew = - if list = [] then - listNew - else - reverseListMaker (List.tail list) ((List.head list) :: listNew) - reverseListMaker list [] + let rec reverseListMaker list listNew = + if list = [] then + listNew + else + reverseListMaker (List.tail list) ((List.head list) :: listNew) + reverseListMaker list [] let makeList n m = let rec countPower n m list = @@ -44,14 +41,12 @@ let makeList n m = countPower n (n + m) [] let findFirst list number = - if list = [] then - raise(ArgumentException("")) - else - let rec findElement list number i = - if list = [] then - raise(ArgumentException("Нет такого элемента в списке")) - if List.head list = number then - i - else - findElement (List.tail list) number (i + 1) - findElement list number 0 \ No newline at end of file + let rec findElement list number i = + match list with + | [] -> raise(ArgumentException "Нет такого элемента в списке") + | h :: t when h = number -> i + | _ -> findElement (List.tail list) number (i + 1) + findElement list number 0 + + +printf "%d" (findFirst [1; 2; 3; 4] 3) \ No newline at end of file From 5d2b8fa10962276b4773944512ffc108ed3b335f Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Sat, 5 Mar 2022 22:56:59 +0300 Subject: [PATCH 4/7] delete line --- hw1/hw1/Program.fs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs index 7b80410..1c2bd43 100644 --- a/hw1/hw1/Program.fs +++ b/hw1/hw1/Program.fs @@ -46,7 +46,4 @@ let findFirst list number = | [] -> raise(ArgumentException "Нет такого элемента в списке") | h :: t when h = number -> i | _ -> findElement (List.tail list) number (i + 1) - findElement list number 0 - - -printf "%d" (findFirst [1; 2; 3; 4] 3) \ No newline at end of file + findElement list number 0 \ No newline at end of file From fb30c42f1f62f43eca21bedfecb5fd46d9a5c881 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Sat, 5 Mar 2022 23:05:24 +0300 Subject: [PATCH 5/7] fix --- hw1/hw1.sln | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 hw1/hw1.sln diff --git a/hw1/hw1.sln b/hw1/hw1.sln new file mode 100644 index 0000000..82a77d5 --- /dev/null +++ b/hw1/hw1.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "hw1", "hw1\hw1.fsproj", "{0D25A530-A669-4CFC-92DF-161703584B9A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0D25A530-A669-4CFC-92DF-161703584B9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D25A530-A669-4CFC-92DF-161703584B9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D25A530-A669-4CFC-92DF-161703584B9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D25A530-A669-4CFC-92DF-161703584B9A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal From 41f2821e1dd9f7d8fd76695a1930e4cb6c867242 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Mon, 7 Mar 2022 23:34:39 +0300 Subject: [PATCH 6/7] correct --- hw1/hw1/Program.fs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs index 1c2bd43..952fd95 100644 --- a/hw1/hw1/Program.fs +++ b/hw1/hw1/Program.fs @@ -26,11 +26,11 @@ let fibonacci n = let reverseList list = let rec reverseListMaker list listNew = - if list = [] then - listNew - else - reverseListMaker (List.tail list) ((List.head list) :: listNew) + match list with + | [] -> listNew + | _ -> reverseListMaker (List.tail list) ((List.head list) :: listNew) reverseListMaker list [] + let makeList n m = let rec countPower n m list = From 26016d348e0953cace5b4f847c3469dc5c527bc0 Mon Sep 17 00:00:00 2001 From: MikePuzanov Date: Mon, 7 Mar 2022 23:35:56 +0300 Subject: [PATCH 7/7] delete line) --- hw1/hw1/Program.fs | 1 - 1 file changed, 1 deletion(-) diff --git a/hw1/hw1/Program.fs b/hw1/hw1/Program.fs index 952fd95..36c958c 100644 --- a/hw1/hw1/Program.fs +++ b/hw1/hw1/Program.fs @@ -30,7 +30,6 @@ let reverseList list = | [] -> listNew | _ -> reverseListMaker (List.tail list) ((List.head list) :: listNew) reverseListMaker list [] - let makeList n m = let rec countPower n m list =