diff --git a/Makefile b/Makefile
index dc2c436..60ad736 100644
--- a/Makefile
+++ b/Makefile
@@ -35,11 +35,14 @@ run-lab5-conditional-traversal:
run-lab5-number-examples:
dotnet run --project "lab 5/NumberExamples/NumberExamples.fsproj"
+run-lab5-favorite-lang:
+ dotnet run --project "lab 5/FavoriteLang/FavoriteLang.fsproj"
+
# Запуск Lab 5
run-all-lab5: run-lab5-hello-world run-lab5-quadratic-equation run-lab5-circle-cylinder \
run-lab5-number-operations run-lab5-recursion-types run-lab5-function-factory \
run-lab5-number-traversal run-lab5-lambda-traversal run-lab5-conditional-traversal \
- run-lab5-number-examples
+ run-lab5-number-examples run-lab5-favorite-lang
help:
@echo "Доступные команды:"
@@ -64,6 +67,7 @@ help:
@echo " make run-lab5-lambda-traversal - Запустить пример с лямбда-выражениями"
@echo " make run-lab5-conditional-traversal - Запустить пример с условным обходом"
@echo " make run-lab5-number-examples - Запустить практические примеры работы с числами"
+ @echo " make run-lab5-favorite-lang - Запустить программу о любимом языке программирования"
clean:
dotnet clean
@@ -79,13 +83,13 @@ lab5-docker-build:
docker compose build lab5-hello-world lab5-quadratic-equation lab5-circle-and-cylinder \
lab5-number-operations lab5-recursion-types lab5-function-factory \
lab5-number-traversal lab5-lambda-traversal lab5-conditional-traversal \
- lab5-number-examples
+ lab5-number-examples lab5-favorite-lang
lab5-docker-run:
docker compose up lab5-hello-world lab5-quadratic-equation lab5-circle-and-cylinder \
lab5-number-operations lab5-recursion-types lab5-function-factory \
lab5-number-traversal lab5-lambda-traversal lab5-conditional-traversal \
- lab5-number-examples
+ lab5-number-examples lab5-favorite-lang
# Docker lab 5 отдельные программы
lab5-hello-world-docker-run:
@@ -118,6 +122,9 @@ lab5-conditional-traversal-docker-run:
lab5-number-examples-docker-run:
docker compose up lab5-number-examples
+lab5-favorite-lang-docker-run:
+ docker compose up lab5-favorite-lang
+
ci-local:
circleci config validate
circleci local execute
diff --git a/compose.yaml b/compose.yaml
index 5901999..f1afe5e 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -98,4 +98,13 @@ services:
volumes:
- ./lab 5/NumberExamples:/app
stdin_open: true
+ tty: true
+
+ lab5-favorite-lang:
+ build:
+ context: ./lab 5/FavoriteLang
+ dockerfile: ../../Individual Task 1/Dockerfile
+ volumes:
+ - ./lab 5/FavoriteLang:/app
+ stdin_open: true
tty: true
\ No newline at end of file
diff --git a/lab 5/FavoriteLang/FavoriteLang.fsproj b/lab 5/FavoriteLang/FavoriteLang.fsproj
new file mode 100644
index 0000000..925ece7
--- /dev/null
+++ b/lab 5/FavoriteLang/FavoriteLang.fsproj
@@ -0,0 +1,13 @@
+
+
+
+ Exe
+ net7.0
+ FavoriteLang
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab 5/FavoriteLang/Program.fs b/lab 5/FavoriteLang/Program.fs
new file mode 100644
index 0000000..af10d44
--- /dev/null
+++ b/lab 5/FavoriteLang/Program.fs
@@ -0,0 +1,49 @@
+open System
+
+let getResponse (language: string) =
+ match language.ToLower() with
+ | "f#" | "fsharp" -> "Ты подлиза! Думаешь, это поможет тебе получить хорошую оценку?"
+ | "prolog" -> "Ты подлиза! И мазохист, видимо. Кто вообще любит Prolog?"
+ | "python" -> "Ух ты, как оригинально! Еще один фанат змеиного синтаксиса и отступов вместо скобок."
+ | "javascript" -> "JavaScript? Серьезно? Язык, где null не равен null, но равен undefined? Удачи с этим."
+ | "java" -> "Java... Любишь писать 20 строк кода там, где хватило бы 2, да? Фанат многословия?"
+ | "c++" -> "C++, где каждая ошибка - это пять новых багов и утечка памяти. Смелый выбор!"
+ | "rust" -> "О, хипстер программирования! Любишь рассказывать всем про заимствования и время жизни?"
+ | "haskell" -> "Хаскель? Ты, наверное, любишь объяснять монады через аналогии с космосом?"
+ | "c#" -> "C#... Мечтал стать разработчиком в Microsoft, но не прошел собеседование?"
+ | "go" -> "Go - когда хочешь писать на C, но без всех сложных функций, которые делают его полезным."
+ | "ruby" -> "Ruby? В 2010-м позвонили, просят их язык обратно."
+ | "php" -> "PHP - доказательство того, что даже плохо спроектированный язык может прожить десятилетия."
+ | "swift" -> "Swift? Нравится платить Apple дань за возможность разрабатывать для их устройств?"
+ | "kotlin" -> "Kotlin - когда Java настолько плоха, что пришлось изобрести новый язык."
+ | "scala" -> "Scala? Любишь когда код выглядит как иероглифы из древнего манускрипта?"
+ | "pascal" | "delphi" -> "Ого, динозавры еще не вымерли! Какой музей тебя выпустил?"
+ | "cobol" -> "COBOL? Ты, наверное, миллионер, обслуживающий банковские системы 60-х годов?"
+ | "fortran" -> "Фортран? Ты, наверное, ровесник первых ЭВМ?"
+ | "basic" -> "BASIC? Где ты нашел машину времени, чтобы вернуться в 80-е?"
+ | "lisp" -> "LISP? (Слишком (много (скобок (не (находишь?))))"
+ | "assembly" | "asm" -> "Ассемблер? Ты либо гений, либо просто любишь страдать."
+ | "matlab" -> "MATLAB? Твои графики, наверное, красивее, чем твой код."
+ | "r" -> "R? Статистика настолько скучна, что потребовался целый язык?"
+ | "perl" -> "Perl - когда хочешь, чтобы никто не мог прочитать твой код, даже ты сам через неделю."
+ | "lua" -> "Lua? Язык для тех, кто не дорос до настоящего программирования."
+ | "typescript" -> "TypeScript? JavaScript с дополнительной головной болью!"
+ | "objective-c" -> "Objective-C? Ты либо мазохист, либо застрял в 2007 году."
+ | "erlang" -> "Erlang? Ценишь непонятный синтаксис и отсутствие документации?"
+ | "clojure" -> "Clojure? Лисп в JVM - странный выбор для мучений."
+ | "sql" -> "SQL? Это не настоящий язык программирования, но ладно, притворимся."
+ | "bash" | "shell" -> "Bash? Скриптовое программирование - это же не настоящее программирование!"
+ | "powershell" -> "PowerShell? Windows-админ, который думает, что умеет программировать?"
+ | _ -> $"Что это за {language}? Настолько непопулярный, что я даже шутку не могу придумать!"
+
+[]
+let main argv =
+ Console.OutputEncoding <- Text.Encoding.UTF8
+
+ printfn "Какой язык программирования у тебя любимый?"
+ let userInput = Console.ReadLine()
+
+ let response = getResponse userInput
+ printfn "%s" response
+
+ 0
\ No newline at end of file