это функциональный язык программирования, в основном работающий с выражениями, математическими функциями со многими ограничениями, такими как отсутствие управляющих операторов, никаких модификаций.

свойство:

  1. статически типизированный
  2. ленивая оценка (вычисляет математику спора только при вызове)

образец структуры

digit_sum :: Int->Int -> Int 
digit_sum a c= if a>0 then digit_sum (div a 10) c+1 else c
main = do 
    putStrLn("Enter a two digit number1 ")
    temp <- getLine 
    let n = (read temp :: Int) 
    let count=0
    let count2=0
    --need to check whether it is actually a two digit number (count )
    let count_dig = digit_sum n count
    print(count_dig)

    temp2 <- getLine 
    let m = (read temp2 :: Int) 
     --need to check whether it is actually a two digit number (count )
    let count_dig2 = digit_sum m count2 
    print(count_dig2)


    if (mod (n-m) 9 )==0
        then print("diff is multiple of 9")
    else
        print("no")

основной синтаксис

1) -- для комментариев

2) пусть для объявления переменной

3) если () то иначе

4) функция declare :: arg1 -> arg2 -> return

5) получение ввода ‹- getLine

6) напечатать или поставить StrLn

Список свойств

  1. пусть d = [1,2,3] - — для объявления
  2. вы можете объединять только целые числа в функции

3) головной и хвостовой доступ

4) доступ к индексу

д !! положение индекса

5) аналогично взять и бросить

6) типизация

let n = (read temp :: Int)

7) минус оператор

8) список вывода/диапазона/условий понимания

9) понимание списка 2 var

10) вложенная функция xs ссылается на внутренний список

xxs относится к внешнему списку

11) фильтрация нужного вам значения

12) карта для всех

встроенные функции, такие как минимум[1,2,3] максимум[2,3,4] реверс[1,2,3], сумма, произведение, элемент

search_list :: [Int]->Int->Int 
search_list [x]  a = if (x==a) then a else 0
search_list (x:xs) a =  if(x == a) then a else search_list xs a


main = do 
    print("search  list ")
    let x = [1..3]
    -- print(x !! 2)
   
   
    print(search_list x 5)