lab 6 task 10

main
Artem-Darius Weber 6 months ago
parent 41edff5d32
commit 9dc73e73af

@ -1,4 +1,4 @@
.PHONY: run build clean task1 build-task1 clean-task1 task2 build-task2 clean-task2 task3 build-task3 clean-task3 task4 build-task4 clean-task4 task5 build-task5 clean-task5 task6 build-task6 clean-task6 task7 build-task7 clean-task7 task8 build-task8 clean-task8 task9 build-task9 clean-task9
.PHONY: run build clean task1 build-task1 clean-task1 task2 build-task2 clean-task2 task3 build-task3 clean-task3 task4 build-task4 clean-task4 task5 build-task5 clean-task5 task6 build-task6 clean-task6 task7 build-task7 clean-task7 task8 build-task8 clean-task8 task9 build-task9 clean-task9 task10 build-task10 clean-task10
# task1
run:
@ -101,3 +101,13 @@ build-task9:
clean-task9:
cd task9 && dotnet clean
# task10
task10:
cd task10 && dotnet run --project task10.fsproj
build-task10:
cd task10 && dotnet build
clean-task10:
cd task10 && dotnet clean

@ -0,0 +1,42 @@
open System
let readStringList () =
let rec readLines acc =
let line = Console.ReadLine()
if String.IsNullOrEmpty(line) then
List.rev acc
else
readLines (line :: acc)
readLines []
let sortByLength strings =
strings |> List.sortBy (fun s -> s.Length)
let printStringList strings =
strings |> List.iter (fun s -> printfn "%s" s)
let demonstrateWithSample () =
let sampleStrings = ["hello"; "world"; "a"; "programming"; "test"]
printfn "Original list:"
printStringList sampleStrings
printfn "\nSorted by length:"
let sorted = sortByLength sampleStrings
printStringList sorted
[<EntryPoint>]
let main argv =
printfn "Enter strings (empty line to finish):"
let strings = readStringList ()
if List.isEmpty strings then
printfn "No strings entered. Using sample data:"
demonstrateWithSample ()
else
printfn "\nOriginal strings:"
printStringList strings
printfn "\nSorted by length:"
let sortedStrings = sortByLength strings
printStringList sortedStrings
0

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
</PropertyGroup>
</Project>
Loading…
Cancel
Save