Содержание
- 2. Задачи на листке
- 3. Задачи на листочке Тип (.) sin . cos = \x -> sin (cos x) ( ->
- 4. Д.з.
- 5. allDiffLists Вариант 1: allDiffLists n k = filter checkDifferent (allLists n k) Очень неэффективно ☹ Вариант
- 6. allDiffLists - продолжение Вариант 3: allDiffLists n k = allDiffLists' n k [] allDiffLists' n k
- 7. allNondivisible прием "представление множества с помощью логической функции" Что тут все-таки требовалось? Вместо списка, в который
- 8. allNondivisible - код allNondivisible xs = allNondivisible' xs (\t -> False) allNondivisible' [] _ = True
- 9. triangle1, triangle2 triangle 3 ? [1, 1,4, 1,4,9] i: 1 2 3 triangle1 n = [1..n]
- 10. Shape – типичные ошибки contains (Circle r x y) a b = if (sqrt ((x-a)^2+(y-b)^2)) then
- 11. Shape data Circle = Circle Double Double Double data Rect = Rect Double Double Double Double
- 12. Дроби data Ration = Rat Integer Integer instance Ord Ration where Rat n1 d1 --- Вспомните
- 13. Еще про классы
- 14. deriving data Abc = … deriving Show Определить show автоматически (как-то) Еще Ord Eq Можно писать
- 15. Как сообщать о неудаче?
- 16. findSame – варианты решения Число для сообщения об ошибке [1,2,3,2] ? 2 [1,2,3] ? -1 Проблема:
- 17. findSame- еще варианты Возвращаем строку [1,2,3] -> "Not found" [1,2,3,2] ? "2" Ваш интерфейс не будет
- 18. findSame – еще варианты Вернуть пару (значение, код) [1,2,3,2] ? (True, 2) [1,2,3] ? (False, 0)
- 19. findSame- еще варианты [] или [x] [1,2,3,2] -> [2] [1,2,3] -> [] Список всех повторяющихся [1,2,3,2,3]
- 20. Maybe Специальный тип Например: data Result a = Found a | NotFound Есть стандартный тип, лучше
- 21. Failure continuations (продолжения при ошибке) Очередной функциональный фокус…
- 22. find find условие список Вернуть элемент, удовлетворяющий условию Тоже проблема, как сообщить об ошибке Идея –
- 23. find c failure continuation А можно считать, что err – это то, что надо сделать при
- 24. findSame с failure continuation findsame [] err = err findsame (x:xs) err = find (==x) xs
- 25. Еще пример Найти первое число, большее 1000, а если его нет, то первое число большее 500,
- 26. К следующему д.з.: Комбинируем функции
- 27. Как вернуть позицию в списке? Когда мы ищем что-то в списке, хотелось бы вернуть не просто
- 28. find, который возвращает пару В этой теме давайте для простоты временно считать, что мы всегда точно
- 29. Моя мечта – композиция для таких функций Пусть я хочу как-то сочетать функции, которые берут список
- 30. Задание на дом: >>> Давайте напишем что-то похожее на композицию, но для функций вида список ->
- 31. К следующему д.з.: Символьные вычисления
- 32. Как представлять выражения, чтобы можно обрабатывать в программе Пока будем рассматривать выражения, которые состоят из целых
- 33. Про некоторые доп.задачи
- 34. Lst367 на C# static IEnumberable Lst367() { yield return 3; yield return 6; yield return 7;
- 35. countDifferentVars Понять, какие переменные на самом деле разные, а какие одинаковые Посчитать разные переменные во втором
- 37. Скачать презентацию