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

Parse error on input

28.04.2020, 20:23. Показов 1225. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Читал одну книжку и там в примере были вот такие классы, но у меня при запуске выдает такую ошибку : parse error on input `::'
|
34 | type Dur a :: *

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Temporal a where
type Dur a :: *
dur :: a -> Dur a
delay :: Dur a -> a -> a
stretch :: Dur a -> a -> a
 
instance Num t => Temporal (Event t a) where
type Dur (Event t a) = t
dur = eventDur
delay = delayEvent
stretch = stretchEvent
 
instance Num t => Temporal (Track t a) where
type Dur (Track t a) = t
dur = trackDur
delay = delayTrack
stretch = stretchTrack
Возникает 2 вопроса , что означает * в данной записи ( думаю что это любые входные данные или вроде того) и почему возникает эта ошибка
p.s. исправил parse error( случайно добавил 3 пробела вместо 4) но вопрос со звездочкой остается

Добавлено через 7 минут
также после исправления возникает такая ошибка :

C:\Users\1\flprgz\app\Main.hs:33:5: error:
* Illegal family declaration for `Dur'
Enable TypeFamilies to allow indexed type families
* In the class declaration for `Temporal'
|
33 | type Dur a :: *
| ^^^^^^^^^^^^^^^

Вопрос: TypeFamilies это пакет? просто я не нашел его на stackage.

Добавлено через 1 минуту
Эту проблему тоже решил, надо было добавить {-# LANGUAGE TypeFamilies #-}

Добавлено через 1 час 17 минут
Выдает такую ошибку, не знаю с чем связано :
C:\Users\1\flprgz\app\Main.hs:90:34: error:
* No instance for (Functor2 []) arising from a use of `fmap1'
* In the `trackEvents' field of a record
In the expression:
t {trackEvents = fmap1 (fmap1 f) (trackEvents t)}
In an equation for `fmap1':
fmap1 f t = t {trackEvents = fmap1 (fmap1 f) (trackEvents t)}
|
90 | fmap1 f t = t{ trackEvents = fmap1 (fmap1 f) (trackEvents t) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

код :
Haskell
1
2
3
4
5
6
7
8
9
class Functor2 f where
    fmap1 :: (a -> b) -> f a -> f b
    (<$) :: a -> f b -> f a
    
instance Functor2 (Event t) where
    fmap1 f e = e{ eventContent = f (eventContent e) }
 
instance Functor2 (Track2 t) where
    fmap1 f t = t{ trackEvents = fmap1 (fmap1 f) (trackEvents t) }
Добавлено через 1 час 3 минуты
проблему сверху решил подключив стандартные функторы, вылезла проблема:

C:\Users\1\flprgz\app\Main.hs:152:45: error:
* Couldn't match expected type `TimeDiv'
with actual type `Midi -> TimeDiv'
* Probable cause: `timeDiv' is applied to too few arguments
In the first argument of `fromRealTime', namely `timeDiv'
In the first argument of `(.)', namely `(fromRealTime timeDiv)'
In the second argument of `(.)', namely
`(fromRealTime timeDiv) . (sortBy (on compare fst))'
|
152 | tfmTime = (M.fromAbsTime) . (M.fromRealTime timeDiv) . (sortBy (on compare
fst))
| ^^^^^^^

код :
Haskell
1
2
tfmTime :: M.Track Double -> M.Track M.Ticks
tfmTime = (M.fromAbsTime) . (M.fromRealTime timeDiv) . (sortBy (on compare fst))
Добавлено через 6 минут
timeDiv определяется в стандартном классе data Midi = Midi {
fileType :: FileType,
timeDiv :: TimeDiv,
tracks :: [Track Ticks] }

Добавлено через 21 минуту
Также не подключается модуль System , хотя он тут необходим
Haskell
1
2
3
import System
out = (>> system ”timidity tmp.mid”) .
exportFile ”tmp.mid” . render
Добавлено через 2 минуты
Осталось только две проблемы:
C:\Users\1\flprgz\app\Main.hs:152:45: error:
* Couldn't match expected type `TimeDiv'
with actual type `Midi -> TimeDiv'
* Probable cause: `timeDiv' is applied to too few arguments
In the first argument of `fromRealTime', namely `timeDiv'
In the first argument of `(.)', namely `(fromRealTime timeDiv)'
In the second argument of `(.)', namely
`(fromRealTime timeDiv) . (sortBy (on compare fst))'
|
152 | tfmTime = (M.fromAbsTime) . (M.fromRealTime timeDiv) . (sortBy (on compare
fst))
| ^^^^^^^


и

Также не подключается модуль System , хотя он тут необходим

Добавлено через 15 минут
Скорее всего проблема в этой функции и ее надо написать без компоиций, но у меня не получается сделать это корректно.
Haskell
1
tfmTime = M.fromAbsTime . M.fromRealTime timeDiv .sortBy (on compare fst)
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2020, 20:23
Ответы с готовыми решениями:

Parse error on input `='
вроде все пробелы верно расставил... ошибка в строке 52 import System.Environment import...

Error parse error on input `='
-- example from book string := f :: Double -&gt; Double -&gt; f w h | g1 &lt;= 18 = &quot;One&quot; | g2 &lt;= 25...

Parse error при загрузке C-библиотеки
Добрый день! Необходимо в Haskell-программу вызывать извне C-функции. Но GHC упорно отказывается...

error on input `('
Помогите пожалуйста разобраться с ошибкой: t.hs:6:10: parse error on input `(' Failed, modules...

2
80 / 73 / 10
Регистрация: 12.08.2019
Сообщений: 78
28.04.2020, 21:23 2
Не хватает отступов в первом фрагменте кода. В Хаскелл отступы важны и используются для обозначения областей видимости. Надо как-то так:
Haskell
1
2
3
4
5
class Temporal a where
   type Dur a :: *
   dur :: a -> Dur a
   delay :: Dur a -> a -> a
   stretch :: Dur a -> a -> a
А зачем определять свой собственный функтор, если можно доопределить старый?
2
3 / 12 / 0
Регистрация: 26.10.2018
Сообщений: 167
28.04.2020, 21:45  [ТС] 3
Bratjuuc, Спасибо, это я решил выше, у меня проблема только с TimeDev теперь

Добавлено через 2 минуты
fromRealTime :: TimeDiv -> Trrack Time -> Track Ticks
fromAbsTime :: Num a -> Track a -> Track a
sortBy :: (a -> a -> Ordering) -> [a] -> [a]
вот заголовки
1
28.04.2020, 21:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2020, 21:45
Помогаю со студенческими работами здесь

parse error
пытаюсь пустить весь траффик выполняемых скриптов через прокси, нужную либу нарыл, поставил....

Forum phpbb2.Parse error: parse error, unexpected '' in install.php on line 749 Что делать?
Здравствуйте! Я скачал скрипт Forum phpbb2. Когда я выхожу на главный файл форума через браузер,...

Правильное написание строки (Parse error: parse error, unexpected ''>'' in c:....scr.inc on line 34)
Как правильно записать следующую строку : &lt;?=&quot;&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;ecategory &lt;a...

Parse error: parse error, unexpected T_VARIABLE in C:inetlocalhostwww estWorkmain.php on line 33
Хочу попробовать написать свой небольшой менеджер для работы с базами, написал два скрипта. при...

ImageString и ошибка Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in
Пишу такую строку imagestring($image,1,10,10,'mytext',&amp;black); Выдаеться такая ошибка Parse...

Parse error: parse error, unexpected T_VARIABLE in C:inetlocalhostwww estpearclasses.php on line 11
Подскажите в чем тут дело, такая ошибка Parse error: parse error, unexpected T_VARIABLE in...


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

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