Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка

64K
30 октября 2010 года
_Дугь_
1 / / 30.10.2010
Доброго времени суток
Вот в таком вот куске кода на Haskell возникла ошибка. Туплю почему-то по страшному..... Функция принимает дерево, в узлах которого ключ и связанный с ключом список, и ключ, по которому находится значение в дереве. Ошибка вот такая:
 
Код:
3_.hs:104:30:
    Couldn't match expected type `ValueTree key a -> Bool'
           against inferred type `Bool'
    In the second argument of `(==)', namely `True'
    In the expression: contains (el tr) == True
    In a stmt of a pattern guard for
                 the definition of `remove':
          contains (el tr) == True

А код вот:
Код:
remove :: ( Ord key ) => key -> ValueTree key a -> ValueTree key a
remove el Emppty = Emppty
remove el tr  
      | contains ( el tr ) == True = remove el tr
      ...........
              where
                   contains :: ( Ord key ) => key -> ValueTree key a -> Bool
                   contains el Emppty = False
                   contains el ( Nodde x list left right )
                            | el == x = True
                            | el < x = ( contains el left )
                            | el > x = ( contains el right )

строка, где закралась ошибка:
 
Код:
| contains ( el tr ) == True = remove el tr

Emmpty - пустое дерево, а само дерево реализовано так:
 
Код:
data ValueTree key a = Emppty
                     | Nodde key [a] ( ValueTree key a )( ValueTree key a )
     deriving ( Show )

Спасибо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог