Участник:ХаскельСкрипт — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
(Вариант 2 - по русски)
(Вариант 2 - по русски)
Строка 57: Строка 57:
 
  main = putStrLn (analyzeGold 999)
 
  main = putStrLn (analyzeGold 999)
  
==== Вариант 2 - по русски ====
+
===== Вариант 2 - по русски =====
  
 
  {-# LANGUAGE UnicodeSyntax #-} -- разрешение использовать не латинские имена переменных и функций (Unicod)
 
  {-# LANGUAGE UnicodeSyntax #-} -- разрешение использовать не латинские имена переменных и функций (Unicod)
Строка 69: Строка 69:
 
       | проба == 585 -> "Неплохо! 585 проба."
 
       | проба == 585 -> "Неплохо! 585 проба."
 
       | otherwise -> "Я не знаю что это за проба..."
 
       | otherwise -> "Я не знаю что это за проба..."
 +
main :: IO ()
 +
-- вводим 999 пробу
 +
main = putStrLn (анализЗолота 750)
 +
 +
==== вариант 3 - английский ====
 +
 +
{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
 +
module Main where
 +
-- функции
 +
analyzeGold :: Int -> String
 +
analyzeGold standard
 +
  | standard == 999 = "Wow! 999 standard!"
 +
  | standard == 750 = "Great! 750 standard."
 +
  | standard == 585 = "Not bad! 585 standard."
 +
  | otherwise = "I don't know such a standard..."
 +
-- программа
 +
main :: IO ()
 +
main = putStrLn (analyzeGold 999)
 +
 +
===== Вариант 3 - по русски =====
 +
 +
{-# LANGUAGE UnicodeSyntax #-} -- разрешение использовать не латинские имена переменных и функций (Unicod)
 +
{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
 +
module Main where
 +
-- Объявление функции анализЗолота
 +
анализЗолота :: Int -> String
 +
анализЗолота проба =
 +
  | проба == 999 = "Отлично! Это 999 проба!"
 +
  | проба == 750 = "Хорошо! 750 проба."
 +
  | проба == 585 = "Неплохо! 585 проба."
 +
  | otherwise = "Я не знаю что это за проба..."
 +
-- программа
 
  main :: IO ()
 
  main :: IO ()
 
  -- вводим 999 пробу
 
  -- вводим 999 пробу

Версия 22:25, 31 октября 2023

https://www.ohaskell.guide/setup.html

Мои программы на Хаскель

Вычисление квадратного корня

square :: Int -> Int
square v = v * v

Проба золота

Проба золота - оригинал

analyzeGold :: Int -> String
analyzeGold standard =
  if standard == 999
    then "Wow! 999 standard!"
    else if standard == 750
           then "Great! 750 standard."
           else if standard == 585
                  then "Not bad! 585 standard."
                  else "I don't know such a standard..."
main :: IO ()
main = putStrLn (analyzeGold 999)

Проба золота - По русски

-- разрешение использовать не латинские имена переменных и функций (Unicod)
{-# LANGUAGE UnicodeSyntax #-}
-- Объявление функции анализЗолота
анализЗолота :: Int -> String
анализЗолота проба =
  if проба == 999
    then "Отлично! Это 999 проба!"
    else if проба == 750
           then "Хорошо! 750 проба."
           else if проба == 585
                  then "Неплохо! 585 проба."
                  else "Я не знаю что это за стандарт..."
main :: IO ()
-- вводим 999 пробу
main = putStrLn (анализЗолота 999)

вариант 2 - английский

{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
module Main where
-- функции
analyzeGold :: Int -> String
analyzeGold standard =
  if | standard == 999 -> "Wow! 999 standard!"
     | standard == 750 -> "Great! 750 standard."
     | standard == 585 -> "Not bad! 585 standard."
     | otherwise -> "I don't know such a standard..."
-- программа
main :: IO ()
main = putStrLn (analyzeGold 999)
Вариант 2 - по русски
{-# LANGUAGE UnicodeSyntax #-} -- разрешение использовать не латинские имена переменных и функций (Unicod)
{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
module Main where
-- Объявление функции анализЗолота
анализЗолота :: Int -> String
анализЗолота проба =
  if | проба == 999 -> "Отлично! Это 999 проба!"
     | проба == 750 -> "Хорошо! 750 проба."
     | проба == 585 -> "Неплохо! 585 проба."
     | otherwise -> "Я не знаю что это за проба..."
main :: IO ()
-- вводим 999 пробу
main = putStrLn (анализЗолота 750)

вариант 3 - английский

{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
module Main where
-- функции
analyzeGold :: Int -> String
analyzeGold standard
  | standard == 999 = "Wow! 999 standard!"
  | standard == 750 = "Great! 750 standard."
  | standard == 585 = "Not bad! 585 standard."
  | otherwise = "I don't know such a standard..."
-- программа
main :: IO ()
main = putStrLn (analyzeGold 999)
Вариант 3 - по русски
{-# LANGUAGE UnicodeSyntax #-} -- разрешение использовать не латинские имена переменных и функций (Unicod)
{-# LANGUAGE MultiWayIf #-}  -- включение расширения которое позволяет использовать множественный if
module Main where
-- Объявление функции анализЗолота
анализЗолота :: Int -> String
анализЗолота проба =
  | проба == 999 = "Отлично! Это 999 проба!"
  | проба == 750 = "Хорошо! 750 проба."
  | проба == 585 = "Неплохо! 585 проба."
  | otherwise = "Я не знаю что это за проба..."
-- программа
main :: IO ()
-- вводим 999 пробу
main = putStrLn (анализЗолота 750)

Ссылки

  • https://www.ohaskell.guide/setup.html - учебник по Хаскелю откуда русифицируются примеры для лучшего понимания
  • https://replit.com - онлайн компилятор Хасекль который позволяет использовать русские имена переменных и функций