Код IT
← Каталог

Первая программа на F# — Функциональный подход к созданию программы

Фрагмент из «Первая программа на F#»: Функциональный подход к созданию программы.

F# main.fs
open System

// Объявление начальных значений
let mutable count = 0
let mutable name = ""

// Функция отображения приветствия
let displayGreeting () =
    if String.IsNullOrEmpty(name) then
        printfn "Привет, мир!"
    else
        printfn "Привет, %s! 👋" name

// Функция обработки ввода имени
let inputName () =
    printf "Введите ваше имя: "
    let input = Console.ReadLine()
    match input with
    | null | "" -> name <- ""
    | _ -> name <- input.Trim()

// Функция увеличения счетчика
let increment () =
    count <- count + 1

// Функция уменьшения счетчика
let decrement () =
    if count > 0 then
        count <- count - 1

// Функция сброса счетчика
let reset () =
    count <- 0

// Основная функция запуска приложения
let rec mainLoop () =
    printf "\n=== Счетчик ===\n"
    printf "Счетчик: %d\n" count
    printf "Выберите действие:\n"
    printf "1. Ввести имя\n"
    printf "2. Увеличить (+)\n"
    printf "3. Уменьшить (-)\n"
    printf "4. Сбросить (0)\n"
    printf "5. Выйти\n"
    printf "Ваш выбор: "
    
    let choice = Console.ReadLine()
    
    match choice with
    | "1" -> inputName(); mainLoop ()
    | "2" -> increment(); mainLoop ()
    | "3" -> decrement(); mainLoop ()
    | "4" -> reset(); mainLoop ()
    | "5" -> printfn "До свидания!"; ()
    | _ -> printfn "Неверный ввод. Попробуйте снова."; mainLoop ()

[<EntryPoint>]
let main argv =
    displayGreeting ()
    mainLoop ()
    0 // Код возврата
open System

// Объявление начальных значений
let mutable count = 0
let mutable name = ""

// Функция отображения приветствия
let displayGreeting () =
    if String.IsNullOrEmpty(name) then
        printfn "Привет, мир!"
    else
        printfn "Привет, %s! 👋" name

// Функция обработки ввода имени
let inputName () =
    printf "Введите ваше имя: "
    let input = Console.ReadLine()
    match input with
    | null | "" -> name <- ""
    | _ -> name <- input.Trim()

// Функция увеличения счетчика
let increment () =
    count <- count + 1

// Функция уменьшения счетчика
let decrement () =
    if count > 0 then
        count <- count - 1

// Функция сброса счетчика
let reset () =
    count <- 0

// Основная функция запуска приложения
let rec mainLoop () =
    printf "\n=== Счетчик ===\n"
    printf "Счетчик: %d\n" count
    printf "Выберите действие:\n"
    printf "1. Ввести имя\n"
    printf "2. Увеличить (+)\n"
    printf "3. Уменьшить (-)\n"
    printf "4. Сбросить (0)\n"
    printf "5. Выйти\n"
    printf "Ваш выбор: "
    
    let choice = Console.ReadLine()
    
    match choice with
    | "1" -> inputName(); mainLoop ()
    | "2" -> increment(); mainLoop ()
    | "3" -> decrement(); mainLoop ()
    | "4" -> reset(); mainLoop ()
    | "5" -> printfn "До свидания!"; ()
    | _ -> printfn "Неверный ввод. Попробуйте снова."; mainLoop ()

[<EntryPoint>]
let main argv =
    displayGreeting ()
    mainLoop ()
    0 // Код возврата