Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.11.2018
Сообщений: 26
1

Вопросы из теста: "Non-exhaustive patterns in function"

05.06.2021, 09:07. Показов 1445. Ответов 3

Author24 — интернет-сервис помощи студентам
Добрый день, может кто помочь с вопросами из теста по Хаскелу.

1.О чем свидетельствует ошибка "Non-exhaustive patterns in function"?

2.Можно ли обнаружить ошибку "Non-exhaustive patterns in function" при компиляции?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2021, 09:07
Ответы с готовыми решениями:

Non-exhaustive patterns in function
Дан список участников круговой считалки, в которой на каждом шаге выбывает каждый пятый....

Вопросы из теста
1. System.out.println("Hi"); System это объект println - метод/функция out - это класс или...

Ответить на вопросы теста
176. Результат вычисления значения выражения c:=a;a:=b;b:=c;при a=123, b=321 : 1. a=123, b=321...

Ответить на вопросы теста
Помогите с ответами на тест!Заранее благодарен! 1) 2) 3) 4) 5)

Ответить на вопросы теста
1. Примером неограниченной последовательности является последовательность а. -1,2-1,2... б....

3
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,639
Записей в блоге: 13
05.06.2021, 12:54 2
Первая свидетельствует о том, что аргумент функции не удовлетворяет ни одному шаблону (или охранному выражению). Пример:

Haskell
1
2
foo x | x `mod` 2==0 = 7
main = print $ foo 18
Успешно компилируется и, естественно, выдает 7. А вот это:

Haskell
1
2
foo x | x `mod` 2==0 = 7
main = print $ foo 19
тоже компилируется, но выдает как раз то самое:

a.out: main.hs:10:1-24: Non-exhaustive patterns in function foo

Как видно из приведенного выше, компилятор это не отлавливает...
2
Модератор
5047 / 3276 / 526
Регистрация: 01.06.2013
Сообщений: 6,806
Записей в блоге: 9
05.06.2021, 13:08 3
Цитата Сообщение от Catstail Посмотреть сообщение
компилятор это не отлавливает
Отлавливает если включить большинство предупреждений.
Или в командной строке ключ -Wall, или его же в файле имя_проекта.cabal, к примеру, у меня в тестовом проекте
Haskell
1
2
3
4
5
executable tst2
  hs-source-dirs:      src
  main-is:             Main.hs
  default-language:    Haskell2010
  ghc-options: -Wall -Wname-shadowing -fwarn-tabs
-Wall включает не все предупреждения, что мне надо. Ещё я включил предупреждения о затенении имени и о наличии знака табуляции в исходной файле. Я обычно использую такое сочетание ключей предупреждений.

Тогда компилятор выдаёт
Haskell
1
2
3
4
5
    Pattern match(es) are non-exhaustive
    In an equation for `foo': Patterns not matched: _
  |
1 | foo x | x `mod` 2==0 = 7
  | ^^^^^^^^^^^^^^^^^^^^^^^^
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,639
Записей в блоге: 13
05.06.2021, 13:13 4
Curry, о, спасибо!
0
05.06.2021, 13:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2021, 13:13
Помогаю со студенческими работами здесь

Вопросы для теста
Доброго времени суток форумчане Помогите с вопросами для теста по JavaScript чтоб ответы не были...

Ответить на вопросы теста
76. В результате выполнения программы будет получено: N := 6; For i := 1 to N do ...

Ответить на вопросы теста
1.Как можно решить систему линейных уравнений, заданную в матричном виде, в пакете MATLAB? Решение...

Ответить на вопросы теста
Помогите пройти тест. Ответ должен быть 1, но у меня выходит их несколько, вообщем интересно мнение...

Ответить на вопросы теста
58. Результатом выполнения данной программы является … Var a: Array of Integer; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru