Презентация на тему "Охрана, локальные выражения"

Презентация: Охрана, локальные выражения
Включить эффекты
1 из 24
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
0.0
0 оценок

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Посмотреть и скачать презентацию по теме "Охрана, локальные выражения", включающую в себя 24 слайда. Скачать файл презентации 0.09 Мб. Большой выбор powerpoint презентаций

  • Формат
    pptx (powerpoint)
  • Количество слайдов
    24
  • Слова
    другое
  • Конспект
    Отсутствует

Содержание

  • Презентация: Охрана, локальные выражения
    Слайд 1

    Охрана, локальные выражения

    Лекция №7

  • Слайд 2

    Охрана (guards)

    bmiTell :: (RealFloat a) => a -> String   bmiTell bmi       | bmi 

  • Слайд 3

    bmiTell :: (RealFloat a) => a -> a -> String   bmiTell weight height       | weight / height ^ 2  bmiTell 85 1.90   "You're supposedly normal. Pffft, I bet you're ugly!"     

  • Слайд 4

    max' :: (Ord a) => a -> a -> a   max' a b        | a > b     = a       | otherwise = b   max' :: (Ord a) => a -> a -> a   max' a b | a > b = a | otherwise = b  

  • Слайд 5

    myCompare :: (Ord a) => a -> a -> Ordering   a `myCompare` b       | a > b     = GT       | a == b    = EQ       | otherwise = LT ghci> 3 `myCompare` 2   GT  

  • Слайд 6

    Локальные выражения (Where?)

    bmiTell :: (RealFloat a) => a -> a -> String   bmiTell weight height       | bmi 

  • Слайд 7

    bmiTell :: (RealFloat a) => a -> a -> String   bmiTell weight height       | bmi 

  • Слайд 8

    Where and pattern matching

    ...   where bmi = weight / height ^ 2         (skinny, normal, fat) = (18.5, 25.0, 30.0)  

  • Слайд 9

    initials :: String -> String -> String   initials firstname lastname = [f] ++ ". " ++ [l] ++ "."       where (f:_) = firstname             (l:_) = lastname    

  • Слайд 10

    calcBmis :: (RealFloat a) => [(a, a)] -> [a]   calcBmis xs = [bmi w h | (w, h) 

  • Слайд 11

    Let it be!

  • Слайд 12

    Let it be

    let in

  • Слайд 13

    cylinder :: (RealFloat a) => a -> a -> a   cylinder r h =      let sideArea = 2 * pi * r * h            topArea = pi * r ^2       in  sideArea + 2 * topArea  

  • Слайд 14

    ghci> [if 5 > 3 then "Woo" else "Boo", if 'a' > 'b' then "Foo" else "Bar"]   ["Woo", "Bar"]   ghci> 4 * (if 10 > 5 then 10 else 0) + 2   42  

  • Слайд 15

    ghci> 4 * (let a = 9 in a + 1) + 2   42   ghci> [let square x = x * x in (square 5, square 3, square 2)]   [(25,9,4)]  

  • Слайд 16

    ghci> (let a = 100; b = 200; c = 300 in a*b*c, \ let foo="Hey "; bar = "there!" in foo ++ bar)   (6000000,"Hey there!")  

  • Слайд 17

    Let it be with pattern matching

    ghci> (let (a,b,c) = (1,2,3) in a+b+c) * 100   600  

  • Слайд 18

    calcBmis :: (RealFloat a) => [(a, a)] -> [a]   calcBmis xs = [bmi | (w, h) 

  • Слайд 19

    calcBmis :: (RealFloat a) => [(a, a)] -> [a]   calcBmis xs = [bmi | (w, h) = 25.0]  

  • Слайд 20

    Let it be in interaction mode

    ghci> let zoot x y z = x * y + z   ghci> zoot 3 9 2   29   ghci> let boot x y z = x * y + z in boot 3 4 2   14   ghci> boot   :1:0: Not in scope: `boot'  

  • Слайд 21

    Case expressions

    case expression of pattern -> result                      pattern -> result                      pattern -> result                      ...  

  • Слайд 22

    describeList :: [a] -> String   describeList xs = "The list is " ++ case xs of [] -> "empty."                                                  [x] -> "a singleton list."                                                   xs -> "a longer list."

  • Слайд 23

    describeList :: [a] -> String   describeList xs = "The list is " ++ what xs       where what [] = "empty."             what [x] = "a singleton list."             what xs = "a longer list."  

  • Слайд 24

    Over

Посмотреть все слайды

Сообщить об ошибке