2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Haskell. BinaryTree. Помогите найти ошибку в синтаксисе.
Сообщение18.06.2015, 20:53 


16/12/14
472
Xaositect
Я надеюсь, что время придет и для этого. Кстати, не могли бы посоветовать хороший материал по конкретно монадам, возможно, статья или еще что.

P.S. Я поменял isLeaf вот так:
Используется синтаксис Haskell
isLeaf :: BTree Int -> Bool
isLeaf tree = if ((isNil (getLeftBranch tree)) && (isNil(getRightBranch tree))) then True
                                                                                else False

Но ошибка все таже, правда вконце он напечатал "", то есть сработала первая охрана в Treeoutput. Что совсем сбивает с толку, так как почему-то он игнорирует часть дерева, так если бы ее не было.

 Профиль  
                  
 
 Re: Haskell. BinaryTree. Помогите найти ошибку в синтаксисе.
Сообщение18.06.2015, 21:10 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Pulseofmalstrem в сообщении #1028656 писал(а):
Я надеюсь, что время придет и для этого. Кстати, не могли бы посоветовать хороший материал по конкретно монадам, возможно, статья или еще что.
Мне нравится http://blog.sigfpe.com/2006/08/you-coul ... s-and.html . Ну и для начала хорошо бы понимать типы, конструкторы типов и классы типов.

-- Чт июн 18, 2015 20:43:46 --

Pulseofmalstrem в сообщении #1028656 писал(а):
Но ошибка все таже, правда вконце он напечатал "", то есть сработала первая охрана в Treeoutput. Что совсем сбивает с толку, так как почему-то он игнорирует часть дерева, так если бы ее не было.
Посмотрите внимательно, что у Вас делает pop:
Код:
*Main> let tree = (fromListtoTree [1, 2, 3, 4, 5, 6, 7] (empty))
*Main> tree
Node 1 (Node 2 (Node 4 (Node 7 Nil Nil) Nil) (Node 6 Nil Nil)) (Node 3 (Node 5 Nil Nil) Nil)
*Main> pop tree
Node 2 (Node 4 (Node 7 Nil Nil) Nil) Nil

 Профиль  
                  
 
 Re: Haskell. BinaryTree. Помогите найти ошибку в синтаксисе.
Сообщение19.06.2015, 02:22 


05/09/12
2587
arseniiv в сообщении #1028521 писал(а):
Тут лучше использовать parser combinators, но вряд ли они будут понятны сразу же, а встроенной функции специально для этого нет.

Парсер комбинаторы я даже в своем интерпретаторе Лискрипта не использую, а вы их советуете для такой задачки :-) Есть сайты с олимпиадными задачками с выбором языка решения, в том числе и Haskell, там входные-выходные данные берутся получаются из стандартных потоков ввода-вывода, и формат входных данных чаще всего именно такой. И конечно никто не использует парсек или аттопарсек, а пишут просто и сердито:
Используется синтаксис Haskell
main = do
    l <- getLine
    print $ map (\x -> read x::Int) $ words l
 

 Профиль  
                  
 
 Re: Haskell. BinaryTree. Помогите найти ошибку в синтаксисе.
Сообщение19.06.2015, 18:04 


16/12/14
472
Всех благодарю за помощь, на данный момент я успешно достиг желанного результата. Если интересно могу выложить мой код сюда.

 Профиль  
                  
 
 Re: Haskell. BinaryTree. Помогите найти ошибку в синтаксисе.
Сообщение20.06.2015, 02:47 
Заслуженный участник


27/04/09
28128

(Оффтоп)

_Ivana в сообщении #1028749 писал(а):
Парсер комбинаторы я даже в своем интерпретаторе Лискрипта не использую, а вы их советуете для такой задачки :-)
Заинтересовали, теперь придётся смотреть, какой у вас подход. :-) (Попозже.) Там-то одной lines из-за использования строк будет недостаточно…

P. S. Виджу. Ну нет уж, лучше комбинаторами. :lol:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Facebook External Hit [crawler]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group