С Новым годом! Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70

Syntax error in expression (unexpected `;', possibly due to bad layout)

30.04.2014, 21:53. Показов 3040. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытке загрузить файл пишет ошибку
ERROR file:.\lab3.hs:34 - Syntax error in expression (unexpected `;', possibly due to bad layout)
в чем может быть проблема? подскажите

Функция getByName (возвращает информацию о человеке по имени)
Функция getByLetter (возвращает список людей, о которых есть информация, что имя начинается на указанную букву)
Функция getAssigment (возвращает по указанной дате список дел)

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
getBDate::[Note String Integer] -> String -> (Integer,Integer,Integer) 
getBDate[] _ = (0, 0, 0) 
getBDate ((BDate a (b, c, d)):xs) n = if a==n then (b, c, d) else getBDate xs n 
getBDate (_:xs) n = getBDate xs n 
 
getPhone::[Note String Integer] -> String -> Integer 
getPhone[] _ = 0 
getPhone ((Phone a b):xs) n = if a==n then b else getPhone xs n 
getPhone (_:xs) n = getPhone xs n
 
getByName::[Note String Integer] -> String -> (String, (Integer,Integer,Integer), Integer) 
getByName[] _ = ("", (0,0,0), 0) 
getByName ((BDate a (b,c,d)):xs) n = if a == n then (n, (b, c, d) , getPhone book n) 
else getByName xs n 
getByName ((Phone a b):xs) n = if a == n then (n, getBDate xs n , b) 
else getByName xs n 
getByName (_:xs) n = getByName xs n
 
getByLetter::[Note String Integer] -> Char -> String -> [String] 
getByLetter[] _ _ =[] 
getByLetter ((BDate a _):xs) n m = if (head a) == n && m /= a 
then a:getByLetter xs n a 
else getByLetter xs n m 
getByLetter ((Phone a _):xs) n m = if (head a) == n && m /= a 
then a:getByLetter xs n a 
else getByLetter xs n m 
getByLetter ((Meet _ a):xs) n m = if (head a) == n && m /= a 
then a:getByLetter xs n a 
else getByLetter xs n m
 
getAssigment::[Note String Integer] -> (Integer,Integer,Integer) -> [(String,Integer)] 
getAssigment[] _ = [] 
getAssigment((BDate a (b,c,e)):xs) (d,m,y) = if ((b==d)&&(c==m)&&((e==y)||(eelse getAssigment xs (d,m,y) 
getAssigment((Meet  (b,c,e) a):xs) (d,m,y) = if ((b==d)&&(c==m)&&((e==y)||(eelse getAssigment xs (d,m,y) 
getAssigment(_:xs) (d,m,y) = getAssigment xs (d,m,y)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2014, 21:53
Ответы с готовыми решениями:

Unexpected EOF while looking for matching `"' / syntax error: unexpected end of file
Пожалуйста помогите справиться с ошибкой или как настроить бесконечный цикл ? P.S. без оператора if (проверка пуста ли папка) скрипт...

Не могу разобраться с ошибкой PHP Parse error: syntax error, unexpected
Всем добрый вечер, прошу помочь разобраться с ошибкой Сыпятся вот такая ошибка PHP Parse error: syntax error, unexpected 'private...

Не работает код :( Parse error: syntax error, unexpected '{', expecting T_FUNCTION
Здравствуйте. Помогите пожалуйста запустить код на сайте. Сейчас выдает ошибку Parse error: syntax error, unexpected '{', expecting...

11
 Аватар для Araneo
650 / 260 / 16
Регистрация: 02.03.2014
Сообщений: 587
30.04.2014, 22:29
первое что бросается в глаза, после if в 33 и 34 строках отсутсвуют then ветки...

Добавлено через 2 минуты
и else тоже... и вообще там только условие без веток выбора которые должны обе быть... что как бы и не нравится компилятору...
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
01.05.2014, 10:46
Цитата Сообщение от Araneo Посмотреть сообщение
что как бы и не нравится компилятору
- компилятор - это автомат с двоичной логикой. В отличие от человека, ему (компилятору) может "нравиться" или "не нравиться" (без "как бы").

Добавлено через 1 минуту
О, Господи! В строках 33-34 написан if без then и else, что в Haskell недопустимо.
1
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70
01.05.2014, 18:50  [ТС]
Не могли бы вы помочь поставить then и else в нужное место?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
01.05.2014, 19:23
Нужно описание конструктора Note.
1
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70
01.05.2014, 19:28  [ТС]
я нашел данный код на этом ресурсе. только начинаю разбираться с этим языком.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
01.05.2014, 19:29
Haskell
1
2
3
4
5
getAssigment::[Note String Integer] -> (Integer,Integer,Integer) -> [(String,Integer)] 
getAssigment[] _ = [] 
getAssigment((BDate a (b,c,e)):xs) (d,m,y) = if ((b==d)&&(c==m)&&(e==y) then a else getAssigment xs (d,m,y) 
getAssigment((Meet  (b,c,e) a):xs) (d,m,y) = if ((b==d)&&(c==m)&&(e==y) then a else getAssigment xs (d,m,y) 
getAssigment(_:xs) (d,m,y) = getAssigment xs (d,m,y)
1
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70
01.05.2014, 19:44  [ТС]
ERROR file:.\lab3.hs:33 - Syntax error in expression (unexpected keyword "then")
я так понимаю, что нету части кода, где есть описание конструктора Note ?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
01.05.2014, 19:47
О... Скобки лишние

Haskell
1
2
3
4
5
getAssigment::[Note String Integer] -> (Integer,Integer,Integer) -> [(String,Integer)] 
getAssigment[] _ = [] 
getAssigment((BDate a (b,c,e)):xs) (d,m,y) = if (b==d)&&(c==m)&&(e==y) then a else getAssigment xs (d,m,y) 
getAssigment((Meet  (b,c,e) a):xs) (d,m,y) = if (b==d)&&(c==m)&&(e==y) then a else getAssigment xs (d,m,y) 
getAssigment(_:xs) (d,m,y) = getAssigment xs (d,m,y)
1
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70
01.05.2014, 19:53  [ТС]
ERROR file:.\lab3.hs:1 - Undefined type constructor "Note"
:/
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38165 / 21100 / 4307
Регистрация: 12.02.2012
Сообщений: 34,688
Записей в блоге: 14
01.05.2014, 21:34
О чем я и говорил. Твой источник нехороший. Вот нормальное начало решение задачи 8 из Lab-3:

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
data Note = BDay String (Int,Int) | Phone String Int | Meet String (Int,Int,Int)
 
getBday :: [Note] -> String -> Maybe (Int,Int)
getBday [] _                   = Nothing
getBday ((BDay s (d,m)):ns) name = if (s==name) then Just (d,m) else getBday ns name
getBday ((Phone _ _):ns) name    = getBday ns name
getBday ((Meet _ _):ns) name     = getBday ns name
 
getPhone :: [Note] -> String -> Maybe Int
getPhone [] _                  = Nothing
getPhone ((Phone s i):ns) name = if (s==name) then Just i else getPhone ns name
getPhone ((BDay _ _):ns) name  = getPhone ns name
getPhone ((Meet _ _):ns) name  = getPhone ns name
 
getByName :: [Note] -> String -> (Maybe Int, Maybe (Int,Int))
getByName ns name = ((getPhone ns name),(getBday ns name))
 
-- Проверяем:
 
Main> getByName [(BDay "Bob" (28,9)),(BDay "Nick" (23,8)),(Phone "Nick" 1234),(BDay "Alex" (11,11))] "Aly"
(Nothing,Nothing)
 
Main> getByName [(BDay "Bob" (28,9)),(BDay "Nick" (23,8)),(Phone "Nick" 1234),(BDay "Alex" (11,11))] "Alex"
(Nothing,Just (11,11))
 
Main> getByName [(BDay "Bob" (28,9)),(BDay "Nick" (23,8)),(Phone "Nick" 1234),(BDay "Alex" (11,11))] "Nick"
(Just 1234,Just (23,8))
Добавлено через 59 минут
Вот getByLetter (возвращает список имен без повторения):

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
getByLetter' :: [Note] -> Char -> [String]
getByLetter' [] _ = []
getByLetter' ((Phone s i):ns) c | (head s == c) = s : getByLetter' ns c
                                | otherwise = getByLetter' ns c
getByLetter' ((BDay s _):ns) c  | (head s == c) = s : getByLetter' ns c
                                | otherwise = getByLetter' ns c
getByLetter' ((Meet s _):ns) c  | (head s == c) = s : getByLetter' ns c
                                | otherwise = getByLetter' ns c
                               
nub :: Eq a => [a] -> [a] -> [a]
nub [] r = r
nub (x:xs) r | (x `elem` r) = nub xs r
             | otherwise = nub xs (x:r)    
                               
getByLetter :: [Note] -> Char -> [String]
getByLetter n c = nub (getByLetter' n c) []
1
3 / 3 / 2
Регистрация: 20.05.2009
Сообщений: 70
01.05.2014, 22:55  [ТС]
Спасибо большое!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2014, 22:55
Помогаю со студенческими работами здесь

Выборка из двух таблиц: Parse error: syntax error, unexpected T_STRING in
Здравствуйте, замучился уже с этим запросом, подскажите, что тут не так? $sql_top=mysql_query SELECT T1.ref, T1.COUNT(ref),...

Parse error: syntax error, unexpected T_STRING in index.php on line 15
Помогите пожалуйста! Вот такая ошибка: Вот HTML: <html> <meta http-equiv="Content-Language" content="ru"> ...

Ошибка как исправить PHP Parse error: syntax error, unexpected '['
Всем привет. Ребята помогите решить проблему. сайт пишет вот такую ошибку PHP Parse error: syntax error, unexpected '$month=; ...

Parse error: syntax error, unexpected T_SL in /homell.php on line 48
$_POST = <<< HTML <a href="{$config }uploads/posts/{$poster_data}{$poster_name}" onclick="return hs.expand(this)"><img height="200px"...

PHP Parse error: syntax error, unexpected '>' in /home/vhosts/izvdgpu.ru
в логе ошибка синтаксиса. PHP Parse error: syntax error, unexpected '>' in /home/vhosts/izvdgpu.ru ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru